в вершине стека при первом
Адрес, оставленный в вершине стека при первом применении
CONVERT передавался бы аргументом второму
CONVERT и т. д.
В большинстве систем имеется слово
NUMBER (число), которое выполняет те же функции, но зачастую проще в употреблении. В Стандарте-83 (слова несогласованного набора) это слово определено следующим образом:
NUMBER
|
( a -- d)
|
Преобразование текста, начинающегося с адреса а+1, в двоичное значение с учетом текущей системы счисления (значения BASE). Строка может предваряться знаком минус, что делает полученное значение отрицательным.
|
Поэтому слово ПЛЮС лучше определить так: : ПЛЮС \ n2 ( n1 -- сумма) BL WORD NUMBER DROP + ;
Слово
NUMBER используется и самой ФОРТ-системой. Это «обработчик чисел», к которому обращается текстовый интерпретатор, если искомое слово не найдено в словаре.
NUMBER пытается преобразовать полученный фрагмент в число и в случае удачи заносит его значение в стек, при неудаче же осуществляется
ABORT.
В каждой Форт-системе процесс преобразования чисел происходит по-своему, так как способов их введения существует очень много. Ниже будет показано одно из возможных определений слова
NUMBER, которое воспринимает символы : , - . /
как правильные пунктуационные знаки, указывающие, что данный фрагмент нужно считать числом двойной длины. Если внутри какого-либо числа появился один из перечисленных символов, то в переменную
DPL (положение десятичной точки) заносится количество цифр в числе справа от точки. Например, при вводе фрагмента 200.2
DPL содержит единицу. Если в числе нет знаков пунктуации, то значение
DPL окажется равным -1.\ Определение слова NUMBER : NUMBER? ( адр - d t-успешное-завершение) DUP 1+ С@ Получение первой цифры ASCII - = Это знак минус? DUP >R Запоминать флага в стеке возвратов - Если первым символом является "-" , то к адр добавляется 1, чтобы тот указывал на первую цифру ( вычитание -1 равносильно прибавлению 1) -1 DPL ! Отметка того, что знаков пунктуации пока нет. 0 0 ROT В качества первоначального накапливаемого значения берется 0 двойной длины.
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий