Участник:ESSch/FortH List
Материал из Seo Wiki - Поисковая Оптимизация и Программирование
Перейти к навигацииПерейти к поиску
Standard dictionary FortH
Determination
- constant ( n -- ) CREATE , DOES> @ ;
- VARIABLE ( -- N ) CREATE 0 , DOES> ;
Operating
Arifmetical
( вводимые числа с клавиатуры -- стек )
+ | ( n1 n2 — amount) | Adding: amount = n1 + n2. | SPF | 5 2 + -- 7 |
- | ( n1 n2 — difference) | Subtraction: difference = nl-n2. | SPF | 5 2 - -- 3 |
* | ( n1 n2 — making) | Multiplying. | SPF | 5 2 * -- 10 |
/ | Fission: quotient = (nl/n2). | SPF | 5 2 / -- 2 | |
MOD | ( n1 n2 n-remainder) | Remainder from fission. Remainder is brought In stack from fission. | SPF | 5 2 MOD -- 1 |
/MOD | ( u1 u2 n_remainder n_quotient) | Fission. Remainder and quotient are brought In stack. | SPF | 5 2 /MOD -- 1 2 | |
*/ | ( n1 n2 n3 -- n4 ) | n1 n2 * -- d, d / n3 -- n4, d - reduces inaccuracy | SPF | 1000000 10 10 */ -- 1000000 |
Операции со стеком
- 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 — ) Удаление из стека
Разметка текста
( xхх) ( — ) Комментарий, который текстовым интерпретатором не воспринимается. | SPF |
CR ( — ) Возврат каретки и перевод строки. | SPF |
SPACE ( — ) Вывод одного пробела. | SPF |
SPACES ( n — ) Вывод заданного числа пробелов. | SPF |
. ( n — ) Вывод числа, за которым следует один пробел. | SPF |
." ххх" ( — ) Вывод строки символов ххх. Символ " является признаком конца строки. | SPF[1] |
.( текст) ( — ) Вывод текста сообщения, ограниченного правой круглой сковкой. Используется, как правило, за пределами определения через двоеточие.[2] | SPF |
ЕMIТ ( с — ) Вывод символа. | SPF |
- : ххх уyу ; ( — ) Определение нового слова с именем ххх, состоящее из слова или слов ууу.
- 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 — целочисленное отрицательнео или положительное число.
SPF 2**(8*4) = 4байта
- u —
- d — двойная ячейка.
SPF
- c — 128-159 (A-Я) 159-174 (а-о)
- a —
Список компиляторов
- Janus Constructor (рус.)
Литература
- ANSI, пер. Сергеем Кадочниковым ANS94ru.fhlp. — 2006. (рус.)
- ANSI ANSI FORTH 94. — 1994. (англ.)
Примечания
Если вам нравится SbUP.com Сайт, вы можете поддержать его - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 и ещё....
→