Загрузка...
скачать
Реферат на тему:

Стандартный словарь Forth



План:

  • 1 Определения
  • 2 Операции
    • 2.1 Арифметические
  • 3 Операции со стеком
  • 4 Команды редактирования — работа со строками
  • 5 Циклы
  • 6 Вывод содержимого текущего блока
  • 7 Числа
  • 8 Редактирование
  • 9 Переменные
  • 10 Виды переменных
  • 11 Список компиляторов
  • 12 Литература

Определения

  • constant (n —) CREATE , DOES> @ ;
  • VARIABLE ( — N) CREATE 0 , DOES> ;

Операции

Арифметические

Операции со стеком

  • SWAP (n1 n2 — n2 n1) Перестановка двух верхних элементов стека.
  • DUP (n — n n) Дублирование верхнего элемента стека.
  • OVER (n1 n2 — nl n2 n1) Копирование второго элемента и размещение копии в вершине стека.
  • ROT (n1 n2 n3 — n2 n3 n1) Размещение третьего элемента в вершине стека.
  • DROP (n —) Удаление из стека верхнего элемента.
  • 2SWAP (d1 d2 — d2 d1) Перестановка двух верхних пар чисел.
  • 2DUP (d — d d) Дублирование пары чисел, находящейся в вершине стека.
  • 2OVER (d1 d2 — d1 d2 d1) Копирование второй пары чисел и размещение копии в вершине стека.
  • 2DROP (d —) Удаление из стека


  •  : ххх уyу; ( —) Определение нового слова с именем ххх, состоящее из слова или слов ууу.
  • CR ( —) Возврат каретки и перевод строки.
  • SPACES (n —) Вывод заданного числа пробелов.
  • SPACE ( —) Вывод одного пробела.
  • ЕMIТ (с —) Вывод символа.
  • ." ххх" ( —) Вывод строки символов ххх. Символ " является признаком конца строки.
  • + (nl n2 — сумма) Суммирование.
  • . (n —) Вывод числа, за которым следует один пробел.
  • (xхх) ( —) Комментарий, который текстовым интерпретатором не воспринимается. Символ) является ограничителем.
  • FORGET имя ( —) С помощью этого слова мы забываем (удаляем иа словаря) указанное слово и все слова, внесенные в словарь после него.
  • LIST (n —) Вывод на экран дискового блока.
  • LOAD (n —) Загрузка дискового блока (компиляция или выполнение) . Блок 0 обычно загружен быть не может.
  • FLUSH ( —) Запись всех обновленных дисковых буферов на диск, после чего освобождение этих буферов.
  • \ ( —) Пропуск оставшегося текста данной строки.
  • \S ( —) Пропуск оставшегося текста экрана.
  • THRU (нач кон —) Загрузка всех блоков с номерами из диапазона от нач до кон
  • .(текст) ( —) Вывод текста сообщения, ограниченного правой круглой скобкой. Используется, как правило, за пределами определения через двоеточие.
  • THRIAD (n —) Вывод трех блоков с номерами, включающими n, начиная с номера, делящегося без остатка на 3.
  • SHOW (нач кон —) Вывод блоков с номерами из диапазона от нач до кон по три блока.
  • INDEX (нач кон --) Вывод комментария только для блоков, номера которых входят в диапазон от нач. до кон.
  • LOCATE xxx ( —) или VIEW Вывод содержимого блока, иэ которого было загружено определение слова ххх.

Команды редактирования — работа со строками

  • Т (n —) Вывод заданной строки.
  • Р ( —) Рьь или Р XXX Копирование заданного фрагмента, еcли есть, в буфер вставок, после чего помещение копии буфера вставок в текущую строку.
  • U ( —) Uьь или U ххх Копирование заданной строки, если есть, в буфер вставок после чего помещение копии буфера вставок в строку, следующую за текущей.
  • G (блок строка) Копирование заданной строки и помещение ее в строку перед текущей, со сдвигом текущей и всех последующих строк вниз.
  • BRING (блок нач кон) Получение строк в указанном диапазоне.
  • X ( —) Копирование текущей строки в буфер вставок и извлечение этой строки из блока.
  • F или ( —) F ххх Копирование указанной строки, если заданы, в буфер поиска, после чего поиск данной строки в текущем блоке.
  • S или S xxx (n —) или (n — n) Копирование указанной строки, если задана, в буфер поиска, после чего просмотр блоков от текущего до n-ного в поисках указанной строки. Если строка найдена, на стек помещается номер последнего просмотренного блока.
  • E ( —) Используется следом за F. Удаляется столько символов перед курсором, сколько их в данный момент находится в буфере поиска.
  • I> или Б ххх ( —) Копирование указанной строки, если задана, в буфер поиска, поиск очередного вхождения этого фрагмента в текущей строке и удаление его.
  • TILL или TILL xxx ( —) Копирование указанной строки, если задана, в буфер поиска, после чего удаление всех символов, начиная от курсора и заканчивая последним символом заданной строки.
  • I или
  • I XXX ( —) Копирование указанного фрагмента, если задан, в буфер вставок, после чего помещение содержимого буфера вставок сразу же после курсора.
  • R или R xxx ( —) Объединяются команды Е и I. Замещение найденного фрагмента заданным фрагментом или содержимым буфер вставок.
  • ^ ( —) Отметка конца текста, помещаемого в буфер.

Циклы

  • DO … LOOP DO: (граница индекс —) Организация цикла со счетчиком по заданному диапазону индексов.
    • LOOP: ( —)
  • DO … +LOOP DO: (граница индекс —) Аналогично DO … LOOP . Только к индексу на каждом шаге добавляется значение
    • +LOOP: (n —) n (а не как всегда единица).
  • LEAVE ( —) Немедленное завершение выполнения цикла LOOP или +LOOP. (Используетея только внутри цикла.)
  • BEGIN … UNTIL: (? —) Организация цикла с условием, который за-
    • UNTIL вершается, когда ? принимает значение истина.
  • BEGIN ххх WHILE: (? —) Организация цикла с условием, причем ххх
    • WHILE ууу выполняется всегда, а ууу—только
    • REPEAT если ? истинно.
  • .R (u ширина-поля —)Вывод числа одинарной точности без знакa. Число выровнено справа по границе поля.
  • PAGE ( —) Чистка экрана дисплея и установка курсора в верхний левый угол.
  • QUIT ( —) Завершение выполнения текущей задачи и возврат управления на терминал.


Комбинированные команды редактировании WIPE ( —) Заполнение текущего блока пробелами. L ( —)


Вывод содержимого текущего блока

  • N ( —) Делается текущим следующий блок.
  • В ( —) Делается текущим предыдущий блок.
  • COPY (откуда куда —) Копирование содержимое одного блока в другой.
  • К ( —) Меняются местами содержимое буфера поиска и буфера вставок.

Числа

  • число. представление числа в 16 битном представлении, например 2000.
  • 12345679X число выводимое системой с ар. процессором в виде числа с двойной длиной
  • D. (d —) Печать числа двойной длины со знаком.
  • U. (u —) Вывод числа одинарной длины без знака с одним пробелом после него.
  • UD. предназначено для вывода числа двойной длины без знака
  • TYPE| align="center" |печать
  • SIGN должно располагаться внутри выражения форматного вывода, вставляет знак «-» в строку символов лишь в том случае, если верхний символ в стеке является отрицательным

Редактирование

  • BS Возврат назад на одну позицию («забой») 8
  • LF Перевод строки 10
  • CR Возврат каретки 13

Переменные

  • VARIABLE ххх ( —) Создание переменной с именем ххх.
    • ххх ( — а) Слово ххх при выполнении помещает в стек свой адрес.
  •  ! (n а --) Запоминание числа одинарной длины по заданному адресу.
  • @ (a — n) Замещение адреса его содержимым.
  •  ? (а --) Вывод значения по заданному адресу с последующим пробелом.
  • +! (n а --) Сложение числа одинарной длины с содержимым заданного адреса.
  • 2VARIABLE xxx ( —) Создание переменной двойной длины
    • ххх: ( — a) с именем ххх. Слово ххх при выполнении помещает на стек свой адрес.
  • 2CONSTANT ххх (d —) Создает константу двойной длины с именем ххх и значением d.
    • ххх: ( — d) Слово ххх при выполнении помещает в стек значение d.
  • 2! (d а —) Запоминание числа двойной длины по заданному адресу.
  • 2@ (а — d) Занесение в стек числа двойной длины, расположенного по заданному адресу.

Виды переменных

  • n — число со знаком;
  • +n — не отрицательное число;
  • u — без знаковое число;
  • d — число со знаком двойной длины;
  • +d — не отрицательное число двойной длины;
  • ud — без знаковое число двойной длины;
  • c — символ;
  • a — адрес в памяти;
  • c-addr — строка (символьно-выровненный адрес).

Список компиляторов

  • Janus Constructor  

Литература

  • ANSI, пер. Сергеем Кадочниковым ANS94ru.fhlp. — 2006.  
  • ANSI ANSI FORTH 94. — 1994.  (англ.)
скачать

Данный реферат составлен на основе статьи из русской Википедии. Синхронизация выполнена 19.07.11 23:17:28

Похожие рефераты: Стандартный ряд, Стандартный ввод, Стандартный выпуск, Стандартный симплекс, Стандартный кантонский, Стандартный язык, Стандартный хинди, Стандартный вывод, Стандартный потенциал.

Категории: Стековые языки программирования, Языки программирования семейства Forth.

Текст доступен по лицензии Creative Commons Attribution-ShareAlike.