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


Книга "Немцы и славяне. История противостояния" Адольфа Павинского - это увлекательное научное исследование, которое погружает читателей в многовековой конфликт между двумя народами. Автор, используя архивные материалы и исторические документы, мастерски воспроизводит ход событий, анализирует причины и последствия столкновений. Книга охватывает широкий временной период, от ранних поселений славянских племен на территории современной Германии до Второй мировой войны. Павинский...

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

Фьорды. Ледяное сердце. Ингрид Юхансен
- Фьорды. Ледяное сердце

Жанр: Детектив

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

Серия: Шведский БДСМ-детектив

Илья Тарасов - Руководство по программированию на Форте

Руководство по программированию на Форте
Книга - Руководство по программированию на Форте.  Илья Тарасов  - прочитать полностью в библиотеке КнигаГо
Название:
Руководство по программированию на Форте
Илья Тарасов

Жанр:

Руководства и инструкции, Самиздат, сетевая литература, Литература ХXI века (эпоха Глобализации экономики), Программирование: прочее, Forth

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

неизвестно

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

Интернет-издательство «Stribog»

Год издания:

ISBN:

неизвестно

Отзывы:

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

Рейтинг:

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

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

Краткое содержание книги "Руководство по программированию на Форте"

Краткое введение в современный Форт.

Читаем онлайн "Руководство по программированию на Форте". [Страница - 8]

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

Стандартной конструкцией является условный оператор IF...THEN. Посмотрим, как эта конструкция записывается в Форте.


<условие> IF <условное действие> THEN


При записи условного оператора сохраняется уже известный нам принцип Форта – сначала аргументы, потом операция. Слово IF не исключение – для того, чтобы понять, следует ли исполнять условную часть конструкции, оно должно получить на стеке код условия. Если на стеке находится ИСТИНА, условная часть выполняется, иначе управление передается на точку за словом THEN.

Что представляет собой условие выполнения? По смыслу оно должно принимать одно из двух значений ИСТИНА/ЛОЖЬ и иметь специальный логический (boolean) тип. Форт и эту проблему решает весьма радикально – логическое условие представляет собой просто число на стеке данных. Ноль рассматривается как ЛОЖЬ, все остальные числа – как ИСТИНА. Таким образом, для определения условия выполнения мы можем использовать любое математическое выражение, дающее в результате ноль или «не ноль».

Для упрощения записи логических операций Форт имеет в своем составе соответствующий набор слов.


Имя Стековая нотация Описание = ( A, B → ИСТИНА, если A=B ) Заменяет два числа ИСТИНОЙ, если они равны. > ( A, B → ИСТИНА, если A>B ) Заменяет два числа ИСТИНОЙ, если второе сверху число больше первого. < ( A, B → ИСТИНА, если A<B ) Заменяет два числа ИСТИНОЙ, если второе сверху число меньше первого. U> ( A, B → ИСТИНА, если A>B ) То же, что >, но числа рассматриваются как числа без знака. U< ( A, B → ИСТИНА, если A<B ) То же, что <, но числа рассматриваются как числа без знака. AND ( A, B → A and B ) Побитное логическое И над двумя числами. OR ( A, B → A or B ) Побитное логическое ИЛИ над двумя числами. XOR ( A, B → A xor B ) Побитное логическое ИСКЛЮЧАЮЩЕЕ ИЛИ над двумя числами. NOT ( A → not A ) Логическое отрицание (ЛОЖЬ заменяется на ИСТИНУ и наоборот)
Обратите внимание на беззнаковые версии операций сравнения. Обычно Форт использует знаковое представление чисел, в котором старший бит в двоичной записи числа указывает, что число отрицательное. В таком случае 0FFFFH < 1, поскольку 0FFFFH представляет собой –1 в дополнительной двоичной арифметике. В то же время операция U< рассмотрит оба числа как числа без знака, и на запрос -1 1 U< вернет ЛОЖЬ.

В соответствии со стандартом логические операции выполняются над отдельными битами исходных чисел. Таким образом, 1 (двоичное 00000001) и 4 (двоичное 00000100) при выполнении над ними операции AND дадут 0, поскольку положения установленных разрядов в этих числах не совпадают. С другой стороны, оба этих числа представляют собой ИСТИНУ, так что логическое И над ними должно также давать ИСТИНУ. Чтобы избежать подобных ситуаций, для представления истинных выражений используется –1, имеющее единицы во всех двоичных разрядах. Базовые слова Форта используют именно такое представление логической ИСТИНЫ, и оно настоятельно рекомендуется для использования в словах, добавляемых пользователем.

Определим теперь пример, использующий операции сравнения в сочетании с условным исполнением.


: РАВЕНСТВО ( A, B --> )

    = IF .” Числа равны” THEN

;


Определенное слово РАВЕНСТВО использует знак сравнения (=), который снимает два числа со стека и кладет ИСТИНУ, если они равны. В результате перед выполнением слова IF на стеке оказался код условия. В случае, если числа были равны, будет выполнена часть определения вплоть до слова THEN, то есть напечатан текст «Числа равны».

Новое слово .” (точка-кавычка) предназначено для вывода текста. Оно поглощает весь текст, вплоть до закрывающей кавычки, и выводит его на экран. Запись этого слова на первый взгляд выглядит необычной, поскольку текст, с которым оно работает, идет после слова, а не перед ним, как мы уже привыкли. Чуть ниже мы рассмотрим причины такого поведения.

Теперь приведем еще одну версию условного оператора.


<условие> IF <выполняется> ELSE <не выполняется> THEN


И соответствующий этой форме записи пример.


: РАВЕНСТВО ( A, B --> )

    = IF .” Числа равны” ELSE .” Числа не равны” THEN

;


Обратите внимание на то, куда передается выполнение, --">

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


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