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


         

Литеры и строки, форматный вывод чисел


В современном программировании важное место занимает обработка текстовых данных. С каждой литерой, которую можно ввести с внешнего устройства или вывести на него, связывается некоторое число — код этой литеры, так что в памяти ЭВМ литеры представлены своими кодами. Стандарт языка Форт предусматривает использование таблицы кодов ASCII, в которой задействованы все числа в диапазоне от 0 до 127. Каждый код занимает один 8-разрядный байт, в котором для представления литеры используются младшие 7 разрядов.

Такая привязка к одной конкретной кодировке не является существенным препятствием к использованию других, если сохраняется условие, что код литеры занимает один байт. В применяемых в нашей стране форт-системах помимо ASCII применяются коды КОИ-7, КОИ-8, ДКОИ и другие.

Для доступа к однобайтным значениям, расположенным в памяти, используются слова C@ A-->B и C! B,A -->, которые аналогичны словам @ и !. Префикс С (от слова CHARACTER — литера) говорит о том, что эти слова работают с литерными кодами (однобайтными значениями).

Слово C@ возвращает содержимое байта по адресу A, дополняя его до 16-разрядного значения нулевыми разрядами. Обратное действие выполняет слово C!, которое засылает младшие 8 разрядов значения B в память по адресу A.

Для политерного обмена с терминалом стандарт предусматривает такие слова:

KEY ---> A EMIT A ---> CR ---> TYPE A,N ---> EXPECT A,N --->

Слово KEY (клавиша) возвращает в младших разрядах значения A — код очередной литеры, введенной с терминала. В отличие от слова C@ старшие разряды зависят от реализации и могут быть ненулевыми. Обратное действие выполняет слово EMIT (испустить), которое снимает значение со стека и, рассматривая его младшие разряды как код литеры, выводит эту литеру на терминал. Специальное слово CR (сокращение от CARRIAGE RETURN — возврат каретки) вынолняет перевод строки при выводе на терминал.

Расположенные в памяти побайтно коды литер образуют строку, которую можно напечатать на терминале словом TYPE (напечатать).

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