Библиотека knigago >> Компьютеры: Языки и системы программирования >> Forth >> Учебное пособие по языку ФОРТ


Книга Леонида Млечина "Комитет-1991. Нерассказанная история КГБ России" представляет собой захватывающее историческое расследование, которое проливает новый свет на один из самых драматических моментов в истории современной России – Августовский путч 1991 года. Автор, опираясь на обширный архивный материал и многочисленные интервью с непосредственными участниками событий, создает живое и детальное повествование о том, как произошел государственный переворот и как его предотвратил...

ИТФ «Технофорт» - Учебное пособие по языку ФОРТ

Учебное пособие по языку ФОРТ
Книга - Учебное пособие по языку ФОРТ.   ИТФ «Технофорт»  - прочитать полностью в библиотеке КнигаГо
Название:
Учебное пособие по языку ФОРТ
ИТФ «Технофорт»

Жанр:

Литература ХX века (эпоха Социальных революций), Современные российские издания, Программирование: прочее, Forth

Изадано в серии:

неизвестно

Издательство:

ИТФ «Технофорт»

Год издания:

ISBN:

неизвестно

Отзывы:

Комментировать

Рейтинг:

Поделись книгой с друзьями!

Помощь сайту: донат на оплату сервера

Краткое содержание книги "Учебное пособие по языку ФОРТ"

Язык программирования Форт (от английского FORTH) был изобретен Чарльзом Муром в 70-x годах для создания программного обеспечения управляющих устройств. В настоящее время Форт широко используется при решении следующих задач:
• разработка и тестирование встроенного оборудования;
• управление станками, роботами, медицинскими приборами;
• разработка трансляторов и операционных систем;
• системы управления базами данных;
• задачи машинной графики;
• экспертные системы, в том числе экспертные системы реального времени.

ИТФ «Технофорт», Санкт-Петербург 1993 Б. Посадская, д.9А Тел./факс: 233-34-10 тел. 238-82-88 эл. почта: Forth@forthi.spb.su

Читаем онлайн "Учебное пособие по языку ФОРТ". [Страница - 3]

-->        ...  остаток    целая часть

B трех последних словах имеются в виду остаток и целая часть частного от деления а на b. Так, при делении 26 на 7 имеем:

         26  7         /    -->  3

         26  7        MOD   -->  5

         26  7        /MOD  -->  5  3

Имеются специальные слова для действий c 1 и 2 (они выполняются немного быстрее)

  1+                 ...  a      -->  ...  a+1

Аналогично работают "1-", "2+", "2-", "2*", "2/".

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

  AND       ...        a  b   -->  ...  a AND b  ( И )

  OR        ...        a  b   -->  ...  a OR  b  ( ИЛИ )

  NOT       ...        a      -->  ...    NOT a  ( HE )

  XOR       ...        a  b   -->  ...  a XOR b  ( ИСКЛЮЧАЮЩЕЕ ИЛИ )

5. Определение новых слов

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

Слова, которые указывают Форт-системе, что пользователь заводит новое слово, называются ОПРЕДЕЛЯЮЩИМИ словами. Наиболее употребительное определяющее слово - это ":" (двоеточие). Формально соответствующее определение (или описание) выглядит следующим образом:

      : имя тело ;

• "имя" как раз и есть новое придуманное слово,

• "тело" представляет собой перечень через пробелы уже имеющихся в Форт-системе слов; совокупность их функций образует те действия, которые будут выполнены при исполнении данного слова,

• наличие слова ";" (точка с запятой) обязательно, оно завершает определение.

Например, текст

  : S2 DUP * SWAP DUP * + ;

определяет слово "S2", вычисляющее сумму квадратов двух чисел из стека

  S2                  ...  a  b   -->  ...        a*a+b*b

Если в теле определения встретятся слова, которых нет в словаре, система напечатает ошибочное слово со знаком '-?'. При этом вся наработанная информация о новом слове исчезает.

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

Скомпилированные слова сразу же могут использоваться и в вычислениях и в определении других слов. Например, сумму четырех квадратов можно определить так:

  :   S4         (  a  b  c  d         -->  a*a+b*b+c*c+d*d  )

      S2  -ROT        S2  +  ;

Можно отменить уже определенное слово ("забыть" его), но при этом забываются также и все слова, определенные позже него. Для этого используется слово "FORGET". Например, действие

      FORGET S2

"забудет" S2 и все определенные позже слова.

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

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

При завершении сеанса работы с Форт-системой, что обычно задается словом "BYE", из словаря исчезают все новые слова, определенные в этом сеансе. Способ сохранения наработанной версии Форт-системы зависит от конкретной реализации.

Приведем еще пару примеров. Слово "8MOD" эквивалентно тексту "8 MOD" , но использует логические операции. Слово "LAST1" выделяет в двоичном разложении числа младшую единицу.

  : 8MOD  7 AND ;

  : LAST1 DUP DUP 1- XOR AND ;

6. Словарь

6.1. Кодофайл

Кодофайлом будем называть участок памяти, в котором располагаются набор слов Форт-системы и новые скомпилированные слова, написанные пользователем. Здесь же размещаются константы и переменные. Память занимается в направлении возрастания адресов, при этом свободная память находится в конце словаря. Иногда два соседних байта называют ячейкой. Тогда адресом ячейки считается --">

Оставить комментарий:


Ваш e-mail является приватным и не будет опубликован в комментарии.