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

Материал из Seo Wiki - Поисковая Оптимизация и Программирование

Перейти к: навигация, поиск

Содержание

Определения

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

Операции

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

+ ( n1 n2 — сумма) сумма = n1 + n2 Сложение.
- ( n1 n2 — разность) Вычитание (nl-n2) .
* ( n1 n2 — произвел) Умножение.
/ ( n1 n2 — частное) Деление. Частное = (nl/n2).
MOD ( n1 n2 — n-остаток) Деление. В стек заносится остаток от деления.
/MOD ( u1 u2 — n_остаток n_частное) Деление. В стек заносятся остаток и частное.

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

  • SWAP ( n1 n2 — n2 n1) Перестановка двух верхних элементов стека.
  • BUP ( 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) Дублирование пары чисел, находящейся в вершине стека.
  • 20VER ( 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) Занесение в стек числа двойной длины, расположенного по заданному адресу.

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

  • <span id="n" />n — константа в стеке.
  • <span id="u" />u —
  • <span id="d" />d —
  • <span id="c" />c —
  • <span id="a" />a —

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

Литература

Личные инструменты

Served in 0.135 secs.