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


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

# 1991, книга: Баллада о боевом слоне
автор: Лев Рэмович Вершинин

"Баллада о боевом слоне" Льва Вершинина - это захватывающая научно-фантастическая эпопея, которая переносит читателей в далекое будущее, где цивилизация достигла высот технологического развития, но также столкнулась с новыми угрозами и возможностями. В центре истории - капитан Алайна Майкрофт, блестящий стратег, который возглавляет элитный отряд боевых слонов. Эти генетически модифицированные слоны, оснащенные передовыми технологиями, являются могущественным оружием в арсенале...

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

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

Жанр:

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

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

неизвестно

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

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

Год издания:

ISBN:

неизвестно

Отзывы:

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

Рейтинг:

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

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

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

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

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

достоинства и недостатки такого подхода, однако следует заметить, что постфиксная запись является не синтаксическим «вывертом», а практически единственной формой представления выражений, пригодной для работы со стеком и словарем – базовыми понятиями Форта, представляющими собой его основу.

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

Можно заметить, что стек данных является целочисленным, поскольку использует такие понятия, как целая часть и остаток от деления. Это означает, что он дает возможность оперировать только с числами формата integer. Разрядность чисел на стеке определяет и разрядность транслятора как такового.

Одним из недостатков такого представления чисел является ограниченный диапазон, особенно для 16-разрядных трансляторов. Особенно эти недостатки проявляются при операциях типа A*B/C. Хотя результат может и укладываться в отведенный для него диапазон, на промежуточном этапе возможно получение числа, превышающего максимально допустимое для записи в стек. Лишние разряды числа будут автоматически отброшены процессором, и мы получим неверный результат. Для того чтобы устранить подобные ситуации, стандартом предусмотрены несколько слов, выполняющих подобные операции за один проход.


Имя Стековая нотация Описание */ ( A, B, C → A*B/C ) Выполняет вычисления в соответствии со стековой нотацией. */MOD ( A, B, C → A*B/C, A*B mod C) то же
Особенностью приведенных слов является то, что промежуточный результат представляется с двойной точностью (обычно в системе команд современных процессоров имеется такая возможность). Запись промежуточного результата в стек при этом не происходит, а все операции выполняются непосредственно внутри арифметико-логического устройства центрального процессора.

Существует также возможность представить числа на стеке с двойной точностью. В этом случае под число отводятся две ячейки стека: ближе к вершине стека находится старшая часть, а под ней – младшая. Такое представление дает возможность очень просто переходить от одинарного представления чисел к двойному и обратно. Для повышения разрядности числа достаточно распространить его старший (знаковый) бит на следующую ячейку стека, а для обратного преобразования – выполнить команду DROP. Однако стандартом предусмотрены и специальные синтаксические обозначения для таких операций.


Имя Стековая нотация Описание S>D ( A → D ) Преобразует число на вершине стека в число двойной разрядности D>S ( D → A ) Преобразует число двойной разрядности в обычное число
Для чисел двойной разрядности допустимы следующие операции.


Имя Стековая нотация Описание D+ ( D1, D2 → D1 + D2 ) Складывает числа двойной длины. D– ( D1, D2 → D1 – D2 ) Вычитает числа двойной длины. 2DUP ( D → D, D ) Аналог слова DUP для чисел двойной длины 2DROP ( D → ) Аналог слова DROP для чисел двойной длины 2SWAP ( D1, D2 → D2, D1 ) Аналог слова SWAP для чисел двойной длины 2OVER ( D1, D2 → D1, D2, D1 ) Аналог слова OVER для чисел двойной длины 2ROT ( D1, D2, D3 → D2, D3, D1 ) Аналог слова ROT для чисел двойной длины DABS ( D1 → |D1| ) Модуль числа двойной длины DNEGATE ( D1 → – D1 ) Изменяет знак числа двойной длины
Следует иметь в виду, что числа двойной длины никак не помечаются на стеке. В действительности любую пару чисел можно рассматривать как числа двойной длины и применить к ним любую из перечисленных операций. Аналогично к числам двойной длины можно применить операции, предусмотренные для обычных чисел. Форт не запретит такую операцию, поскольку просто не имеет в своем составе встроенных средств контроля типов. Это является еще одним проявлением принципа «программисту доступно все».

Другим существенным ограничением является невозможность представить в --">

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


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