Язык программирования Форт


         

Дайте два определения, используя как


Дайте два определения, используя как CMOVE, так и MOVE. 5. Напишите слово ARR_EXCH (копировать массив), которое производит обмен содержимого двух массивов одинарных чисел размерности n. Таким образом, 1DATA 2DATA 7 ARR-EXCH перенесет массив 1DATA в 2DATA и наоборот. (Указание: воcпользуйтесь словами PAD и MOVE. Возможно, потребуется временно хранить где-либо количество чисел.)
Переменная, константа и связанные с ними слова
До сих пор в этой главе мы рассказывали вам о создании переменных окольным путем. Это делалось для того, чтобы вы привыкли думать о переменных как ячейках памяти, что представляется неудобным, если вы знакомы с другими языками программирования. Существуют, однако, болей простые средства для обращения с переменными и массивами.
Стандартное слово VARIABLE (переменная) применяется для определения имени переменной и резервирования по ее значение двух байтов. Таким образом VARIABLE INCHES Производит те же действия, что и CREATE INCHES 2 ALLOT но немного удобнее, что более важно: применение слова VARIABLE в программе вместо CREATE делает ее более удобочитаемой и понятной. С переменной, которая определена, действуют так же, как с переменной, созданной словом CREATE. (Напомним снова, что слово CREATE включено в словарь Форта не только для того, чтобы создавать переменные, массивы и т.д. Оно также служит и для других целей.)
Для обращения с двойными числами имеется стандартное слово 2VARIABLE. В некоторых реализациях Форта есть другие разновидности слова VARIABLE, например CVARIABLE для хранения байтов, 4VARIABLE для переменных с плавающей запятой. Вам должно, быть понятно, что собственно слово VARIABLE (переменная) определяется следующим образом: : VARIABLE CREATE 2 ALLOT ;
Эта конструкция работает потому, что слово CREATE создает переменную при исполнении, а не при компиляции, т.е. не во время добавления определяемого слова VARIABLE к словарю. Массивы также могут определяться словом VARIABLE. Если ввести с клавиатуры VARIABLE INCHES 8 ALLOT то это будет равносильно CREATE INCHES 10 ALLOT причем вместо 8 используется 10, потому что два байта уже были резервированы словом VARIABLE.

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