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


СЛУЧАЙНЫЙ КОММЕНТАРИЙ

# 2133, книга: Точка выброски
автор: Сергей Иванович Зверев

«Точка выброски» — это захватывающий боевик, который держит читателей в напряжении от первой до последней страницы. Автор, Сергей Зверев, мастерски создает динамичный и захватывающий сюжет, в котором переплетаются экшен, интрига и неожиданные повороты. Главный герой, Иван Петров, — отставной спецназовец, вынужденный вернуться в мир шпионажа из-за похищения его любимой дочери. Вместе со своей командой он отправляется в опасную миссию по спасению, которая приводит их к загадочной организации с...

СЛУЧАЙНАЯ КНИГА

Настольная книга гейши. Элиза Танака
- Настольная книга гейши

Жанр: Здоровье

Год издания: 2004

Серия: Только для женщин

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

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

Жанр:

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

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

неизвестно

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

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

Год издания:

ISBN:

неизвестно

Отзывы:

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

Рейтинг:

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

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

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

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

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

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

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

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

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

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

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

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

новое слово "имя" как константу со значением, равным числу на вершине стека, и удаляет из стека это число. В дальнейшем выполнение слова "имя" помещает это число в стек.

Специфическое для языка Форт преимущество использования в программе констант состоит в следующем. Скомпилированное определение, содержащее константу, занимает меньший объем памяти, чем то же определение с изображением самого числа. При неоднократном появлении числа в программе это становится существенным.

Как правило, в базовом наборе слов определены константы:

            0 CONSTANT FALSE    и    1 CONSTANT TRUE

            0 CONSTANT 0        и    1 CONSTANT 1

Определяющее слово "VARIABLE", которое используется в тексте

                           VARIABLE  имя

резервирует в словаре 2 байта под значение переменной "имя". Исполнение слова "имя" кладет в стек число - адрес зарезервированного места. Этот адрес может использоваться другими словами.

Пример. Текст

  A @ 5 + B !            (A и B - переменные)

соответствует оператору "B:=A+5" других языков программирования.

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

1. слово "2ALLOT" резервирует в кодофайле память под n чисел (число n берется со стека) и кладет в стек адрес начала зарезервированного места

    : 2ALLOT              (  ... n        -->  ... a     )

      HERE  SWAP

      2*  ALLOT ; 

2. слово для формирования элемента массива:

    : [I]       (  ... i        a  -->        ... a[i]  )

      OVER + + ; 

3. заводится нужный массив

    N              (  N - константа - число элементов массива   )

    2ALLOT         (  на стеке будет адрес начала массива       )

    CONSTANT B     (  B - имя массива                           )  

Если, например, поместить в стек номер нужного элемента в массиве B, то при выполнении текста "B [I]" на стеке окажется адрес этого элемента.

Обратите внимание, что проверку корректности номера элемента массива этот способ не обеспечивает и что элементы массива надо нумеровать с нуля.

8. Символы

Для представления символьной информации отводится по одному байту памяти на каждый символ. Таким образом, каждому символу сопоставляется число от 0 до 255, которое называется его КОДОМ. В разных ЭВМ используются разные кодировки.

Имеются слова для работы с отдельными символами. Надо учитывать, что код символа в стеке хранится в младшем байте ячейки.

    C@                   ...        addr          -->  ...  c

B стек помещается число, равное содержимому байта по адресу addr.

    C!                   ...        c  addr   -->  ...

B байт по адресу addr записывается символ "c".

    C,                   ...        c          -->  ...

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

    KEY            ...                  -->  ...  c         (ожидание)

При выполнении этого слова Форт-система переходит в режим ожидания, пока не будет нажата клавиша какой-либо литеры на клавиатуре дисплея. Код этой литеры и кладется в стек.

    EMIT           ...        c          -->  ...

Символ "c" будет напечатан.

Константа "BL" помещает в стек код пробела.

Слово "C"" помещает в стек код первой следующей за ним литеры, не являющейся пробелом. Слово "C"" делает текст более наглядным, чем при непосредственном использовании кодов. Например, чтобы напечатать знак плюс, нужно выполнить текст

                           C" +  EMIT

9. Работа с участками памяти

Часто приходится выполнять действия сразу над большими участками памяти. Участок памяти в таких действиях определяется адресом его начального байта и длиной.

  FILL                              ...  addr  n  c        -->  ...

Содержимое n байтов начиная с адреса addr заполняется кодом "с".

  BLANK                       ...  addr  n        -->  ...

Эквивалентно "FILL" c заполнением кодом пробела.

  ERASE                       ...  addr  n        -->  ...

Эквивалентно тексту "0 FILL".

  CMOVE                     ...  addr1        addr2  n  -->  ...

Побайтное копирование участка в n байтов с началом addr1 по адресу addr2 в сторону увеличения адресов.

Слово "CMOVE>" отличается от "CMOVE" тем, что начинает запись с ПОСЛЕДНЕГО байта участков. Различие этих слов существенно при перекрытии участков. Вот небольшой пример. Пусть на вершине --">

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


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