[an error occurred while processing this directive]

.цв

5. ТЕРМИНЫ

.шп0

5.0 Перевод терминов

.ов

.кс0

ADDRESS, BYTE - адрес байта

ADDRESS, COMPILATION - адрес компиляции

ADDRESS, NATIVE MACHINE - адрес машинный

ADDRESS, PARAMETER FIELD - адрес поля параметра

ARITHMETIC, TWO'S COMPLEMENT - арифметика в двоичном дополнительном коде

BLOCK - блок

BLOCK BUFFER - буфер блочный

BYTE - байт

CHARACTER - литера

COMPILATION - компиляция

DEFINING WORD - слово определяющее

DEFINITION - определение

DICTIONARY - словарь

DISPLAY - напечатать

DIVISION, FLOORED - деление с недостатком

EQUIVALENT EXECUTION - исполнение тождественное

ERROR CONDITION - ошибка

FALSE - ложь

FLAG - флажок

FLOOR, ARITHMETIC - значение нижнее арифметическое

FREE FIELD FORMAT - формат свободный

GLOSSARY - объяснение

IMMEDIATE WORD - слово немедленного исполнения

INPUT STREM - поток входной

INTERPRETER, ADDRESS - интерпретатор адресный

LAYERS - уровни

LAYER, COMPILER - уровень компилятора

LAYER, DEVICE - уровень устройств

LAYER, INTERPRETER - уровень интерпретатора

LAYER, NUCLEUS - уровень ядра

LOAD - загрузить

MASS STORAGE - память внешняя

NUMBER - число

NUMBER CONVERSION - перевод числа

NUMBER TYPES - типы числовые

PICTURED NUMBERIC OUTPUT - вывод числовой по образцу

PROGRAM - программа

RECEIVE - получить

RECURSION - реккурсия

SCREEN - экран

SCARCH ORDER - порядок поиска

SOURCE DEFINITION - определение исходное

STACK, DATA - стек данных

STACK, RETURN - стек возврата

STRING, COUNTED - строка со счетчиком

STRING, TEXT - строка текстовая

STRUCTURE, CONTROL - структура управления

TRANSPORTABILITY - переносимость

TRUE - истина

USER AREA - область пользовательская

VARIABLE, USER - переменная пользовательская

VOCABULARY - список слов

VOCABULARY, COMPILATION - список слов компилируемый

WORD - слово

WORD DEFINITION - определение слова

WORD NAME - имя слова

WORD SET - набор слов

WORD SET, ASSEMBLER EXTENSION - набор слов ассемблерного расширения

WORD SET, DOUBLE NUMBER EXTENSION - набор слов расширения двойных чисел

WORD SET, REQUIRED - набор слов обязательный

WORD SET, SYSTEM EXTENSION - набор слов системного расширения

WORD, STANDART - слово стандартое

.кс

.цв

5.1 Определения терминов

.ов

Далее следуют определения используемых в данном стандарте терминов.

Адрес байта (ADDRESS, BYTE)

.ло+8

16-разрядное число без знака, которое определяет 8-разрядный байт в стандартном адресном пространстве форта в диапазоне [0..635535]. Это может быть машинный адрес или представление в виртуальной машине, определяющее д99Е* )рчщ%ияу1А9=6им9=6аи=мяи9мящ )я=ч:Nим5&и =яр-.нЫ%м15& ЙИ9-:M6:А"Арифметика в двоичном дополнительном коде".

.ло

Адрес компиляции (ADDRESS, COMPILATION)

.ло+8

Числовое значение, которое компилируется вместо определения форт-слова и идентифицирует его. Адресный интерпретатор использует это значение для нахождения машинного кода, соответствующего каждому определению.

.ло

Адрес машинный (ADDRESS, NATIVE MACHINE)

Естественное представление адреса на данной ЭВМ.

Адрес поля параметра (ADDRESS, PARAMETER FIELD)

.ло+8

Адрес первого байта памяти, связанной с определением слова, для хранения адресов компиляции (в определении через двоеточие), числовых данных, текстовых литер и т.д.

.ло

Арифметика в двоичном дополнительном коде (ARITHMETIC, TWO'S

.ло+8

COMPLEMENT)

Арифметические действия выполняются над целыми числами в двоичном дополнительном коде разрядности 16 или 32, что указывается в операции. При сложении и вычитании целых чисел в двоичном дополнительном коде переполнения не учитываются. Это позволяет получать одни и те же результаты при работе с числами без знака и со знаком.

.ло

Байт (BYTE)

.ло+8

Набор из 8 разрядов. В применении к памяти - "емкость" на 8 разрядов.

.ло

Блок (BLOCK)

.ло+8

1024 байта данных из внешней памяти, к которым обращаются по блочному номеру в диапазоне [0..число доступных блоков - 1]. Фактический объем передаваемых данных и переход от блочного номера к устройству и физической записи зависят от реализации. См. "Буфер блочный", "Память внешняя".

.ло

Буфер блочный (BLOCK BUFFER)

.ло+8

Область памяти размером 1024 байта, в которой блок делается временно доступным для работы с ним. Блочные буфера приписываются блокам однозначным образом. См.9.7. "Возможности мультипрограммирования".

.ло

Возврат (RETURN)

.ло+8

Средство указания конца текста путем нажатия клавиши на входном устройстве. То, какая клавиша используется для этого, зависит от системы. Эта клавиша обычно называется "возврат" (RETURN), "возврат каретки" (CARRIAGE RETURN) или "ввод" (ENTER).

.ло

Вывод числовой по образцу (PICTURED NUMERIC OUTPUT)

.ло+8

Использование определений числового вывода, которые переводят числовые значения в текстовые строки. Эти определения используются в виде последовательности, которая напоминает символический "образец" желаемого текстового формата. Перевод идет от младшей значащей цифры к старшей, полученные литеры сохраняются в памяти от старших адресов к младшим.

.ло

Деление с недостатком (DIVISION, FLOORED)

.ло+8

Деление нацело, при котором остаток имеет знак делителя или равен нулю, а частное округляется до его арифметического нижнего значения. Заметим, что за исключением ошибочных ситуаций, последовательность "N1 N2 SWAP OVER /MOD KOT * +"

тождественна N1. См. "Значение нижнее арифметическое".

    примеры
              делимое  делитель  остаток  частн
                 10        7        3        1
                -10        7        4       -2
                 10       -7       -4       -2
                -10       -7       -3        1

.ло

Загрузить (LOAD)

.ло+8

Переключение входного потока для текстового интерпретатора на внешнюю память. Это общий метод для компиляции в словарь новых определений.

.ло

Значение нижнее арифметическое (FLOOR, ARITHMETIC)

.ло+8

Если Z - любое вещественное число, то нижним значением Z является наибольшее целое, не превосходящее Z.

    нижним значением +.6 является 0
    нижним значением -.4 является -1

.ло

Интерпретатор адресный (INTERPRETER, ADDRESS)

.ло+8

Команды в машинном коде, подпрограмма или другие средства, которые исполняют скомпилированные определения слов, содержащие адреса компиляции.

.ло

Интерпретатор текстовый (INTERPRETER, TEXT)

.ло+8

Одно (или более) определение слова, которое в цикле воспринимает имя слова из входного потока, находит соответствующий адрес компиляции и запускает адресный интерпретатор на его исполнение. Если текст из входного потока интерпретируется как число, соответствующее значение помещается на стек данных. Числа, воспринимаемые из входного потока, либо не имеют знака, либо имеют знак минус и переводятся используя значение "BASE". См. "Число", "Перевод числа".

.ло

Имя слова (WORD NAME)

.ло+8

Имя определения слова. Имена слов ограничены 31 литерой и не могут содержать пробел. Если в одном и том же списке слов имеются два определения с различными именами слов, то требуется, чтобы их можно было найти единственным образом при поиске в данном списке. См. "Список слов", "9.5.3 EXPECT".

.ло

Истина (TRUE)

.ло+8

Ненулевое значение представляет значение "истина" флажка. Любое ненулевое значение воспринимается стандартными словами как "истина"; все стандартные слова возвращают в качестве значения "истина" 16-разрядное значение, в котором все разряды установлены в единицу.

.ло

Исполнение тождественное (EQUIVALENT EXECUTION)

.ло+8

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

.ло

Компиляция (COMPILATION)

.ло+8

Действие, состоящее в переводе текстовых слов из входного потока во внутреннюю форму, пригодную для дальнейшего исполнения. В состоянии компиляции адреса компиляции форт-слов компилируются в словарь для дальнейшего исполнения адресным интерпретатором. Числа компилируются так, что при последующем исполнении они помещаются на стек данных. Числа из входного потока должны либо не иметь знака, либо иметь знак минус; они переводятся с исполнением значения "BASE". См. "Число", "Перевод числа", "Интерпретатор текстовый".

.ло

Код ЭВМ

.ло+8

Внутренний код ЭВМ, используемый для хранения и ввода/вывода текстовой информации. В стандарте предполагается, что ЭВМ, на которой работает форт-система, использует в качестве внутреннего кода код ASCII (КОИ-8 для СССР). Но т.к. отечественные машины используют разные коды для хранения и ввода/вывода текстовой информации, то разумно считать, что ввод/вывод и хранение текстовой информации производится в том коде, в котором работает ЭВМ.

.ло

Литера (CHARACTER)

.ло+8

8-разрядное число, смысл которого дается в машинном коде. Если значение содержится в более широком поле, то старшие разряды - нулевые. См. "6. Литература".

.ло

Ложь (FALSE)

.ло+8

Состояние "ложь" флажка представляется числом ноль.

.ло

Набор слов (WORD SET)

.ло+8

Группа определений форт-слов, объединенная в данном стандарте под одним именем.

.ло

Набор слов ассемблерного расширения (WORD SET, ASSEMBLER EXTENSION)

.ло+8

Дополнительные слова, которые позволяют программировать в машинном языке данной ЭВМ и являются по своей природе зависящими от системы.

.ло

Набор слов обязательный (WORD SET, REQUIRED)

.ло+8

Минимум слов, необходимых для компиляции и исполнения программ, написанных в соответствии со стандартом.

.ло

Набор слов расширения двойных чисел (WORD SET, DOUBLE NUMBER

.ло+8

EXTENSION)

Дополнительные слова, которые позволяют работать с 32-разрядными числами.

.ло

Набор слов системного расширения (WORD SET, SYSIEM EXTENSION)

.ло+8

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

.ло

Напечатать (DISPLAY)

.ло+8

Процесс, состоящий в посылке одной или более литер на текущее выходное устройство. Обычно эти литеры отображаются или печатаются на терминале. Выбор текущего выходного устройства зависит от системы.

.ло

Область пользовательская (USER AREA)

.ло+8

Область оперативной памяти для хранения пользовательских переменных.

.ло

Объяснение (GLOSSARY)

.ло+8

Объяснения на естественном языке, описывающие исполнение определений слов на ЭВМ.

.ло

Определение (DEFINITION)

.ло+8

См. "Определение слова".

.ло

Определение исходное (SOURCE DEFINITION)

.ло+8

Текст, состоящий из имен слов, предназначенный для компиляции или исполнения текстовым интерпретатором. Такой текст обычно организован экранами и хранится на устройстве внешней памяти.

.ло

Определение слова (WORD DEFINITION)

.ло+8

Процедура исполнения на форте, имеющая имя и скомпилированная в словарь. Ее исполнение может быть определено в терминах машинного кода, как последовательность адресов компиляции или других скомпилированных слов.

.ло

Ошибка (ERROR CONDITION)

.ло+8

Исключительное состояние, требующее таких действий системы, которые могут быть другими, чем ожидаемые. См. "10.Ошибка".

.ло

Память внешняя (MASS STORAGE)

.ло+8

Память, которая может располагаться вне адресного пространства форта. Данные из внешней памяти делаются доступными в виде блоков по 1024 байта. Блок доступен в адресном пространстве форта через блочный буфер. Если блок отмечен как исправленный (измененный) через "UPDATE", то он обязательно возвращается во внешнюю память.

.ло

Перевод числа (NUMBER CONVERSION)

.ло+8

Внутреннее представление чисел - двоичное, вовне числа представляются графическими литерами из машинного кода. Перевод из внутренней формы во внешнюю и наоборот выполняется с использованием текущего значения "BASE" для определения цифр числа. Значением цифры является число в диапазоне от нуля до значения "BASE" без единицы. Цифра со значением ноль представляется литерой "0" машинного кода. Это представление цифр продолжается до литеры "9", соответствующей десятичному значению 9. Для цифр, значения которых больше девяти, используются литеры машинного кода, начиная от "А", соответствующей десятичному значению 10. Эта последовательность продолжается до литеры с десятичным значением 71 включительно. Отрицательные числа можно представлять с помощью знака минус (литера "-"), который предшествует последовательности цифр.

.ло

Переменная пользовательская (VARIABLE, USER)

.ло+8

Переменная, область хранения данных которой обычно размещается в пользовательской области, так что эти слова могут быть реентерабельными для разных пользователей.

.ло

Переносимость (TRANSPORTABILITY)

.ло+8

Этот термин означает, что имеет место тождественное исполнение программы при ее исполнении на другой системе, чем та, где она создавалась. См. "Тождественное исполнение".

.ло

Получить (RECEIVE)

.ло+8

Процесс получения одной литеры из текущего входного устройства. Выбор текущего входного устройства определяется системой.

.ло

Порядок поиска (SEARCH ORDER)

.ло+8

Задание порядка, в котором просматриваются выбранные списки слов в словаре. Исполнение некоторого списка слов делает его первым списком в порядке поиска. Поиск в словаре выполняется всякий раз, когда требуется найти слово по его имени. Этот порядок применяется ко всем поискам в словаре, если явно не задано что-либо другое. Порядок поиска начинается от последнего исполненного списка слов и заканчивается списком "FORTH", если он не изменяется каким-нибудь зависящим от системы образом.

.ло

Поток входной (INPUT STREAM)

.ло+8

Последовательность литер, поступающая в систему для обработки текстовым интерпретатором. При специальных условиях входной поток может поступать с текущего входного устройства (через текстовый входной буфер) и внешней памяти (через блочный буфер). Значения "BLK", ">IN", "TIB" и "#TIB" определяют входной поток. Слова, использующие значения "BLK", ">IN", "TIB" и "#TIB" или управляющие ими, несут ответственность за поддержание и восстановление управления входным потоком.

Входной поток простирается от значения смещения ">IN" до размера входного потока. Если значение "BLK" равно нулю, то входной поток содержится в области, адресуемой значением "TIB" и имеющей длину "#TIB" байтов. Если "BLK" не ноль, то входной поток содержится в блочном буфере, определяемом значением "BLK" и имеющем длину 1024 байта. См. "11.8. Входной текст".

.ло

Программа (PROGRAM)

.ло+8

Полное задание исполнения для выполнения определенной функции (прикладной задачи), выраженное в виде входного кода на языке Форт.

.ло

Рекурсия (RECURSION)

.ло+8

Процесс обращения к себе, либо прямо, либо косвенно.

.ло

Словарь (DICTIONARY)

.ло+8

Некоторая расширяемая структура из определений слов, находящихся в памяти ЭВМ и растущая в сторону старших адресов. Словарные статьи организованы в виде списков слов для облегчения поиска слова по имени. См. "Порядок поиска".

.ло

Слово (WORD)

.ло+8

Последовательность литер, завершаемая пробелом или концом входного потока. Ведущие пробелы пропускаются. Обычно слова получают из входного потока.

.ло

Слово немедленного исполнения (IMMEDIATE WORD)

.ло+8

Слово, которое исполняется, когда встречается во время компиляции или интерпретации. С помощью слов немедленного исполнения во время компиляции обрабатываются особые случаи. См., например, "IN", "LITERAL", "."" и т.д.

.ло

Слово определяющее (DEFINING WORD)

.ло+8

Слово, исполнение которого создает новую словарную статью в компилируемом списке слов. Имя нового слова берется из входного потока. Если входной поток оказывается исчерпанным раньше, чем получено новое имя, то такая ситуация рассматривается как ошибка, примерами определяющих слов являются ":", "CONSTANT", "CREATE".

.ло

Слово стандартное (WORD, STANDARD)

.ло+8

Именованное определение форт-процедуры в обязательном множестве слов или любом расширении, которое включено в стандарт с выполнением всех формальностей.

.ло

Список слов (VOCABULARY)

.ло+8

Упорядоченный список определений слов. Списки слов позволяют разделять определения слов, которые могут иметь одно и то же имя. В одном списке может быть несколько определений с одним и тем же именем. Последнее называется переопределением. При поиске в списке слов будет найдено самое последнее созданное переопределение.

.ло

Список слов компилируемый (VOCABULARY, COMPILATION)

.ло+8

Список, в который добавляются новые определения слов.

.ло

Стек возвратов (STACK, RETURN)

.ло+8

Стек "последний вошел - первый вышел", содержащий адреса определений слов, исполнение которых еще не закончено адресным интерпретатором. Когда некоторое определение слова передает управление другому определению, точка возврата помещается на стек возвратов.

При соблюдении предосторожностей стек возвратов можно использовать для других значений.

.ло

Стек данпГ4}7(ЮtыЬмyи>Ъ Я'п!WT&8';018>=V ;/39TXП¤Я.;Яvх_g(ЭЮЪШЦЭСЕЕ

ФТ

ЗЕ ЩЛЖЩЧЙАТФ

Х0@кu"jМ8Лv

ыNИЩ: H¤C W<м6UцGЕ7GI7|,ь6ы)лгы(юьидлфа

>я промежуточных значений во время исполнения определений слов. Значения на стеке могут представлять числа, литеры, адреса, булевские величины и т.д.

Употребление одного слова "стек" означает стек данных.

.ло

Строка со счетчиком (STRING, COUNTED)

.ло+8

Последовательность смежных 8-ми разрядных байтов, определяемая в памяти младшим адресом своих байтов. Байт, находящийся по этому адресу, содержит счетчик [0..255] числа следующих байтов, которые являются частью данной строки, счетчик не включает сам байт счетчика. Строки со счетчиком обычно содержат литеры в машинном коде.

.ло

Строка текстовая (STRING, TEXT)

.ло+8

Последовательность смежных 8-ми разрядных байтов, определяемая в памяти младшим адресом своих байтов и длиной в байтах. Обычно, но не всегда, строки содержат литеры в машинном коде. Когда используется термин "строка", один или в сочетании с другими словами, то он относится к текстовым строкам.

.ло

Структура управления (STRUCTURE, CONTROL)

.ло+8

Группа форт-слов, исполнение которых изменяет последовательность исполнения. Такая группа начинается и заканчивается словами компилятора.

Примеры структур управления:

     "DO...LOOP",                          "DO...+LOOP",
"BEGIN...WHILE...REPEAT",               "BEGIN...UNTIL",
"IF...THEN", "IF...ELSE...THEN".

См."9.9 Структуры управления".

.ло

Типы числовые (NUMBER TYPES)

.ло+8

Все числовые типы состоят из некоторого числа разрядов. Эти разряды либо произвольны, либо взвешены.

Числа со знаком и без знака используют взвешенные разряды. Взвешенные разряды в числе имеют значение, равное двум в степени ноль. Это распределение весов продолжается до самого левого разряда, причем для каждого следующего разряда степень двух увеличивается на единицу. Для чисел без знака это распределение весов продолжается до самого левого разряда, причем для каждого следующего разряда степень двух увеличивается на единицу. Для чисел без знака это распределение весов включает и самый левый разряд; тем самым для 16-ти разрядного числа без знака вес самого первого разряда равен 32,768. Для числа со знаком это распределение весов тоже включает самый левый разряд, но его вес берется отрицательным, тем самым для 16-разрядного числа со знаком вес самого левого разряда равен - 32,768. Такое распределение весов для чисел со знаком называется представлением в двоичном дополнительном коде.

Не указанные явно взвешенные числа являются либо числами без знака, либо числами со знаком; контекст программы определяет, имеет ли данное число знак или нет. См. "11.7 Стековые параметры".

.ло

Уровни (LAYERS)

.ло+8

Группировка имен слов с одинаковыми характеристиками в каждом наборе слов стандарта. На реализацию этой группировкой не накладывается никаких ограничений.

.ло

Уровень интерпретатора (LAYER, INTERPRETER)

.ло+8

Определения слов, обеспечивающие работу со списками слов, вывод на терминал и интерпретацию текста из входного текстового буфера или устройства внешней памяти путем исполнения соответствующих определений слов.

.ло

Уровень компилятора (LAYER, COMPILER)

.ло+8

Компиляции через добавление в словарь адресов компиляции и структур данных.

.ло

Уровень устройств (LAYER, DEVICES)

.ло+8

Определения слов, которые позволяют получить доступ к устройствам внешней памяти и периферийным устройствам.

.ло

Уровень ядра (LAYER, NUCLEUS)

.ло+8

Определения слов, обычно заданные в машинном коде, которые управляют исполнением основных операций виртуальной форт-машины, включая адресный интерпретатор.

.ло

Флажок (FLAG)

.ло+8

Число, которое может иметь одно из двух логических состояний, "ложь" или "истина". См. "Ложь", "Истина".

.ло

Формат свободный (FREE FIELD FORMAT)

.ло+8

Перевод чисел выполняется с использованием значения "BASE", затем числа печатаются без ведущих нулей, и потом печатается завершающий пробел. Число печатаемых литер является минимальным числом, не меньшим единицы, необходимым для однозначного представления данного числа. См. "Перевод числа".

.ло

Число (NUMBER)

.ло+8

Когда значения рассматриваются в более широком поле, то старшие разряды нулевые. 16-разрядные числа представляются в памяти адресом первого из двух байтов в смежных адресах. Порядок байтов стандартом не уточняется. Двойные числа представляются на стеке так, что на вершине стека находятся старшие 16 разрядов (со знаком). Двойные числа в памяти представляются двумя смежными 16-разрядными числами. Адрес младших 16 разрядов на два больше адреса старших 16 разрядов. Порядок байтов внутри каждого 16-разрядного поля не уточняется. См. "Арифметика в двоичном дополнительном коде", "Типы числовые", "9.8 Числа", "11.7 Стековые параметры".

.ло

Экран (SCREEN)

.ло+8

Текстовые данные, подготовленные для редактирования. По соглашению, каждый экран состоит из 16 строк (пронумерованных от 0 до 15) по 64 литеры в каждой. Обычно экраны содержат исходный текст программ, но могут использоваться и для данных во внешней памяти. Первый байт экрана занимает первый байт блока внешней памяти, который является начальной точкой для интерпретации при загрузке.

.сс

.цв

7. СОСТАВ ФОРТ-СИСТЕМЫ

.ов

7.1. Состав документации.

7.1.1. Каждая стандартная система должна сопровождаться следующими данными:

1. Размер системного словаря в байтах.

2. Размер доступной области словаря для приложений в байтах.

3. Размер стека данных в байтах.

4. Размер стека возврата в байтах.

5. Диапазон номеров блоков на устройствах внешней памяти используемой системой.

6. Диапазон номеров блоков на устройствах внешней памяти доступных для приложений.

7. Возможности операторского терминала, обеспечиваемые системой.

8. Системные действия при возникновении общих или специализированных ошибок, как указано в стандарте.

7.1.2. Каждая стандартная система должна сопровождаться следующими данными по минимально необходимым для работы системы ресурсам. А именно:

1. Размер словаря в байтах.

2. Размер стека данных в байтах.

3. Размер стека возвратов в байтах.

4. Объем внешней памяти.

5. Возможности операторского терминала.

7.2. Необходимые ресурсы для тестирования.

Нижеперечисленные ресурсы ЭВМ считаются минимально необходимыми для тестирования форт-системы на соответствие стандарту. Приложения могут потребовать других ресурсов.

1. 2000 байт памяти для словаря приложений.

2. Стек данных размером в 64 байта.

3. Стек возвратов размером в 48 байтов.

4. Объем внешней памяти в 32 блока, занумерованных от 0 до 31.

5. Одно устройство ввода/вывода работает как операторский терминал.

.сс

.цв

12. СЛОВА ОБЯЗАТЕЛЬНОГО НАБОРА

.ов

12.1. Уровни слов обязательного набора.

Слова обязательного набора сгруппированы по признаку функциональной принадлежности. Данная группировка не накладывает никаких ограничений на реализацию этих слов.

.ло

Уровень ядра

.ло+8

! * */ */MOD + +! - / /MOD 0< 0= 0> 1+ 1-
2+ 2- 2/ < = > >R ?DUP @ ABS AND C! C@ CMOVE
CMOVE> COUNT D+ D< DEPTH DNEGATE DROP DUP EXECUTE EXIT
FILL I J MAX MIN MOD NEGATE NOT OR OVER PICK R>
R@ ROLL ROT SWAP U< UM* UM/MOD XOR

.ло

Уровень устройств

.ло+8

BLOCK BUFFER CR EMIT EXPECT FLUSH KEY SAVE-BUFFERS
SPACE SPACES TYPE UPDATE

.ло

Уровень интерпретатора

.ло+8

# #> #S #TIB ' ( -TRAILING . .( <# >BODY >IN
ABORT BASE BLK CONVERT DECIMAL DEFINTIONS FIND FORGET
FORTH FORTH-83 HERE HOLD LOAD PAD QUIT SIGN SPAN TIB
U. WORD

.ло

Уровень компилятора

.ло+8

+LOOP , ." : ; ABORT" ALLOT BEGIN COMPILE CONSTANT
CREATE DO DOES> ELSE IF IMMEDIATE LEAVE LITERAL LOOP
REPEAT STATE THEN UNTIL VARIABLE VOCABULARY WHILE [ [']
[COMPILE] ]

12.2. Словарь обязательного множества слов

.ло

! 16B ADDR -> 79 (сохранить, STORE)

Значение 16В сохраняется по адресу ADDR.

# +D1 -> +D2 79 (диез, SHARP)

.ло+8

Остаток от деления +D1 на значение "BASE" переводится в литеру (См. Код ЭВМ) и добавляется к выходной строке в сторону меньших адресов памяти. +D2 является остатком и сохраняется для дальнейшей обработки. Обычно используется между словами "<#" И "#>".

.ло

#> 32B -> ADDR +N 79 (диез-больше, SHARP-GREATES)

.ло+8

Завершается преобразование числа в представляющую его строку отбрасыванием 32В. ADDR - адрес результирующей выходной строки, +N - число литер этой строки. ADDR и +N предназначены для использования словом "TYPE".

.ло

#S +D -> 0 0 79 (диез-эс, SHARP-S)

.ло+8

+D преобразуется в выходную строку, представляющую число путем добавления результирующих литер до тех пор, пока частное (См. "#") не обратится в ноль. Если число было нулем, то результирующая строка состоит из одной цифры ноль. Обычно используется между "<#" И "#>".

.ло

#TIB -> ADDR U,83 (диез-тиб, NUMBER-TAI-B)

.ло+8

Адрес переменной, содержащей число байтов в текстовом входном буфере. Слово "WORD" обращается к "#TIB", когда "BLK" равно нулю. См. "Входной поток".

.ло

' -> ADDR M,83 (штрих, TICK)

.ло+8

Используется в виде

<ИМЯ>.

ADDR - адрес компиляции слова <ИМЯ>. Если <ИМЯ> не найдено при действующем в данный момент порядка поиска, то возбуждается ошибочная ситуация.

.ло

( -> I,... -> (компиляция) I,M,83 (скобка, PAREN)

.ло+8

Используется в виде

3

!MMN&

:51%яиФ MMN

2=и9%Ы99Е

&

!И-иЕщУ*м-= -=*&2имм5яи%щямф-.-=559яи%&:-=559яи%&%9Е6= иИ=69= и яЕщямф:Aи= 22м1уУ%*%Йза "(", не является частью ("ССС"). "(" может свободно использоваться при интерпретации или компиляции. Число литер в "ССС" может быть от нуля до числа литер, остающихся во входном потоке до закрывающей скобки.

.ло

* W1 W2 -> W3 79 (умножить, TIMES)

.ло+8

W3 - младшие 16 разрядов арифметического произведения W1 на W2.

.ло

*/ N1 N2 N3 -> N4 83 (умножить-разделить, TIMES-DIVIDE)

.ло+8

N1 сперва умножается на N2, в результате чего получается 32-х разрядный промежуточный результат. N4 - нижняя граница для частного от деления этого 32-х разрядного промежуточного результата на делитель N3. Произведение N1 на N2 сохраняется как промежуточный 32-х разрядный результат для большей точности, чем эквивалентная во всем остальном последовательность" N1 N2 * N3 /". Если делитель равен нулю или частное выходит из диапазона [-32768..32767], то возникает ошибочная ситуация. См. "Деление с недостатком".

.ло

*/MOD N1 N2 N3 -> N4 N5 83 (умножить-делить-модуль,

.ло+8

TIMES-DIVIDE-MOD)

N1 сперва умножается на N2 с промежуточным 32-х разрядным результатом. N4 - остаток и N5 - нижняя граница частного от деления этого промежуточного 32-х разрядного результата на делитель N3. 32-х разрядный промежуточный результат используется для того же, что и в "*/". N4 имеет тот же знак, что и N3, или равно нулю. Если делитель равен нулю или частное выходит за диапазон [-32768..32767], то возбуждается ошибка. См. "Деление с недостатком".

.ло

+ W1 W2 -> W3 79 (плюс, PLUS)

.ло+8

W3 - арифметическая сумма W1 плюс W2.

.ло

+! W1 ADDR -> 79 (плюс-присвоить, PLUS-STORE)

.ло+8

W1 добавляется к значению по адресу ADDR по соглашению для "+". Эта сумма замещает первоначальное значение по адресу ADDR.

.ло

+LOOP N -> C, I, 83 (плюс-цикл, PLUS-LOOP)

.ло+8

SYS -> (компиляция)

N добавляется к счетчику цикла. Если новое значение индекса перешло границу между "предел-1" и "предел", то цикл прекращается, и управляющие циклом параметры сбрасываются. Если цикл не должен прекратиться, то исполнение продолжается от точки, следующей за соответствующим "DO". Значение SYS уравновешивается соответствующим "DO". См. "DO".

.ло

, 16В -> 79 (запятая, COMMA)

.ло+8

Отвести память по "ALLOT" для 16В и затем сохранить по адресу "HERE 2-".

.ло

- W1 W2 -> W3 79 (минус, MINUS)

W3 - результат вычитания W2 из W1.

-TRAILING ADDR +N1 -> ADDR +N2 79 (дефис-хвост, DASH-TRAILING)

.ло+8

Счетчик литер +N1 текстовой строки, начинающейся по адресу ADDR, изменяется так, чтобы исключить концевые пробелы. Если +N1 равно нулю, то N2 тоже ноль. Если вся строка состоит из пробелов, то +N2 равно нулю.

.ло

. N -> M,79 (точка, DOT)

.ло+8

Абсолютное значение N распечатывается в свободном формате с предшествующим знаком минус, если N отрицательно.

.ло

." -> C,I,83 (точка-кавычка, DOT-QUOT)

.ло+8

-> (компиляция)

Используется в виде '." ССС"'. При дальнейшем исполнении будут распечатаны литеры "ССС" до разделяющей '"' (закрывающей кавычки) исключительно. Пробел, следующий за '."', не входит в "ССС".

.ло

.( -> I,M,83 (точка-скобка, DOT-PAREN)

.ло+8

-> (компиляция)

Используется в виде ".(ССС)". Распечатываются литеры до разделяющей ")" (закрывающей скобки) исключительно. Пробел, следующий за ".(", не является частью ССС.

.ло

/ N1 N2 -> N3 83 (разделить, DIVIDE)

.ло+8

N3 - нижняя граница частного от деления N1 на делитель N2. Если делитель ноль или частное выходит за диапазон [-32768..32767], то возбуждается ошибка. См. "Деление с недостатком".

.стФОРТ-83. Словарь 2и

[an error occurred while processing this directive]