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


Юлия Матюхина Религиоведение Книга «Мировые культы и ритуалы» представляет собой увлекательное исследование древних верований и практик по всему миру. Она раскрывает тайны и силу культов прошлого, освещая их происхождение, ритуалы и влияние на мировые религии и культуру. * Книга охватывает широкий спектр культов и ритуалов со всех континентов, включая египетский, месопотамский, греческий, римский, кельтский, скандинавский и многие другие. * Матюхина исследует культы на глубинном...

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

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

Жанр:

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

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

неизвестно

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

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

Год издания:

ISBN:

неизвестно

Отзывы:

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

Рейтинг:

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

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

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

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

• разработка и тестирование встроенного оборудования;

• управление станками, роботами, медицинскими приборами;

• разработка трансляторов и операционных систем;

• системы управления базами данных;

• задачи машинной графики;

• экспертные системы, в том числе экспертные системы реального времени.

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

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

стека лежит адрес участка памяти в 12 байтов, где записан текст "Форт-система". Тогда исполнение

                       DUP  4  +  8  CMOVE

превратит этот текст в "ФортФортФорт", a если выполнить "CMOVE>" вместо "CMOVE", то получится "ФортФорт-сис". С помощью этих слов удобно размножать маленькие участки памяти внутри больших (например, числа внутри массивов).

Для заполнения участка памяти информацией непосредственно с клавиатуры имеется слово:

  EXPECT                      ...  addr  n   -->  ...

Участок памяти от адреса addr длиной n байтов заполняется в сторону увеличения адресов вводимыми с клавиатуры символами до тех пор, пока не заполнится весь участок или пользователь не завершит ввод (нажав клавишу ввода). Переменная "SPAN" содержит число фактически введенных символов.

10. Строки

СТРОКОЙ CO СЧЕТЧИКОМ (в дальнейшем просто СТРОКОЙ) называется участок памяти, в первом байте которого находится СЧЕТЧИК — байт, хранящий длину участка (без учета байта под счетчик). Но адресом строки считается адрес счетчика.

Слово " (двойная кавычка) употребляется в конструкции

  " текст "             ...    -->  ...  addr

Текст текст будет превращен в строку, размещенную в памяти от адреса "HERE", адрес этой строки кладется в стек. Слово "COUNT" преобразует адрес строки в адрес и длину ее текста:

  COUNT                  ...  addr   -->  ... addr+1  n

a слово "TYPE" выводит текст (участок памяти) по его адресу и длине:

  TYPE                         ...  addr  n        -->  ...

B качестве примеров работы co строками рассмотрим тексты:

  " МОЛОДЕЦ" COUNT TYPE           ( напечатается МОЛОДЕЦ )

  " МОЛОДЕЦ" COUNT 3 - TYPE       ( напечатается МОЛО )

Разберите следующие примеры: слово "S," размещает в кодофайле строку с данным адресом, a слово "T," — ее текст. Оба слова оставляют на стеке адрес получившегося объекта.

: T, ( a1 - адрес строки --> a2 - адрес текста в кодофайле )

       HERE SWAP          (  a2 a1                         )

       COUNT              (  a2 a1+1 n                     )

       HERE OVER  ALLOT   (        a2  a1+1 n a2           )

       SWAP  CMOVE  ;     (        a2                      )

: S, ( a1 - адрес строки --> a2 - адрес строки в кодофайле )

       HERE SWAP

       DUP C@ 1+        ( a2 a1 n+1                       )

       HERE OVER  ALLOT ( a2 a1 n+1 a2 - отведено n+1 байт )

       SWAP  CMOVE  ;

Слово "."" употребляется в конструкции

                         ." текст "

при выполнении которой текст текст будет выведен на экран.

Упомянем еще несколько возможностей при выводе:

• слово "CR" переводит строки,

• слово "SPACE" вставляет в выходной текст пробел (т. е. оно эквивалентно "BL EMIT").

Имя слова в поле имени его словарной статьи хранится в виде строки со счетчиком.

11. Условное исполнение

При определении нового слова могут потребоваться знакомые Вам из других языков конструкции, организующие условное и циклическое исполнение. Имеются и соответствующие логические величины, принимающие традиционные значения "ИСТИНА" и "ЛОЖЬ". Эти значения представлены целыми числами, причем "ИСТИНА" соответствует числу -1 (двоичные разряды этого числа состоят из 16 единиц), а "ЛОЖЬ" соответствует числу 0 (16 двоичных нулей).

Логические значения получаются при выполнении специальных слов, предназначенных для сравнения чисел.

Слова арифметического сравнения:

 >           ...  a  b     -->  ...  a>b    т. е. при a>b  ИСТИНА

                                                  иначе  ЛОЖЬ

 <           ...  a  b     -->  ...  a<b

 =           ...  a  b     -->  ...  a=b

 0=          ...  a        -->  ...  a=0

 0>          ...  a        -->  ...  a>0

 0<          ...  a        -->  ...  a<0  

Над логическими значениями можно совершать логические операции, описанные в п.4. Для того, чтобы можно было эффективно их использовать, управляющие конструкции на самом деле воспринимают числа из стека как логические значения таким образом:

0 — это "ЛОЖЬ", любое другое значение — "ИСТИНА".

Для организации условного исполнения в языке Форт предусмотрены слова "IF", "ELSE" и "THEN". Они используются в постфиксной форме в конструкциях:

               IF <часть-if> ELSE <часть-else> THEN

          и

               IF <часть-if> THEN 

Слово "IF" берет из стека логическое значение, и в случае, если это "ИСТИНА", исполняет текст <часть-if>; в противном же случае исполняется <часть-else>, если она есть. --">

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


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