Язык Форт и его реализации


         

В первой строке определяется переменная


В первой строке определяется переменная X, и ей присваивается начальное значение 1. Затем текущее значение переменной X распечатывается. После этого текущее значение меняется на противоположное по знаку и вновь распечатывается.

Полезным вариантом слова ! является слово +! (плюс-присвоить) N,A --> , которое увеличивает на N значение, находящееся в памяти по адресу A. Несмотря на то, что это слово легко выразить через + и !:

: +! ( N,A ---> ) DUP @ ROT + SWAP ! ;

оно включено в обязательный набор слов.

Слова, определенные через CONSTANT и VARIABLE, — такие же равноправные слова форт-системы, как и определенные через двоеточие. Их также можно использовать в определениях других слов и исключать из словаря словом FORGET.

Для работы со значениями двойной длины имеются слова

2CONSTANT AA ---> 2VARIABLE ---> 2@ A ---> BB 2! BB,A --->

из стандартного расширения двойных чисел. При размещении в памяти такие значения рассматриваются как пары смежных двухбайтных значений одинарной длины: сперва (в меньших адресах) располагается старшая половина, затем (в больших адресах) младшая. Адресом значения двойной длины считается адрес его старшей половины.

Константы и переменные позволяют программисту использовать память в словаре вполне определенным образом. А как быть, если требуется что-то иное? Общий принцип языка Форт состоит в том, чтобы не закрывать от программиста даже самые элементарные единицы, из которых строятся его более сложные слова, а предоставлять их наравне с другими словами. Элементарными словами для работы с памятью в словаре, помимо приведенных выше @ и ! , являются следующие:

HERE ---> A ALLOT A ---> , A --->

Предполагается, что словарь занимает некоторую начальную часть адресного форт-пространства и у него имеется указатель текущей вершины (словарь растет в сторону увеличения адресов). Слово HERE (здесь) возвращает текущее значение указателя (адрес первого свободного байта, следующего за последним занятым байтом словаря).


Содержание  Назад  Вперед