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


         

Строка со счетчиком представляется полем


Строка со счетчиком представляется полем байт, причем в первом байте записана длина строки. Стандарт не определяет форму представления счетчика длины, оставляя решение этого вопроса на усмотрение разработчиков конкретной реализации. Для перехода от строки со счетчиком к строке с явно заданной длиной имеется слово COUNT (счетчик) A --> B,N, которое преобразует адрес A строки со счетчиком в адрес B ее первой литеры (обычно это A+1) и значение счетчика. Строки со счетчиком используются при вводе слов из входной строки. Стандартное слово WORD (слово) C--> A снимает со стека код литеры-ограничителя и выделяет из входной строки подстроку, ограниченную этой литерой (начальные вхождения литеры-ограничителя пропускаются). Из выделенной подстроки формируется строка со счетчиком, адрес которой возвращается в качестве результата. Слова-команды языка Форт вводятся исполнением текста BL WORD, а текстовая строка в слове ." — исполнением текста QUOTE WORD, где слово QUOTE — константа, обозначающая код кавычки. Литеры введенной строки обычно располагаются вслед за вершиной словаря, т.е. в незащищенном месте, и поэтому их нужно как-то защитить, если предполагается их дальнейшее использование. Некоторые реализации предусматривают слово " (кавычка), которое используется внутри определения через двоеточие и во время его исполнения кладет на стек адрес следующей строки как строки со счетчиком. Это позволяет работать с явно заданными текстами.

Чтобы программист мог задавать коды литер, не связывая себя конкретной кодировкой, во многие реализации введено слово С", которое кладет на стек код первой литеры следующего слова и может использоваться как внутри определения через двоеточие, так и вне его:

: C" ( ---> C ) BL WORD COUNT DROP C@ [COMPILE] LITERAL ; IMMEDIATE

Исполнение текста BL WORD COUNT DROP C@ оставляет на стеке код первой литеры следующего слова. Далее этот код нужно либо скомпилировать как число, либо оставить на стеке в зависимости от текущего состояния текстового интерпретатора.

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





Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий