Илья Тарасов - Руководство по программированию на Форте
Название: | Руководство по программированию на Форте | |
Автор: | Илья Тарасов | |
Жанр: | Руководства и инструкции, Самиздат, сетевая литература, Литература ХXI века (эпоха Глобализации экономики), Программирование: прочее, Forth | |
Изадано в серии: | неизвестно | |
Издательство: | Интернет-издательство «Stribog» | |
Год издания: | 2022 | |
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 )
Изменяет знак числа двойной длины
Следует иметь в виду, что числа двойной длины никак не помечаются на стеке. В действительности любую пару чисел можно рассматривать как числа двойной длины и применить к ним любую из перечисленных операций. Аналогично к числам двойной длины можно применить операции, предусмотренные для обычных чисел. Форт не запретит такую операцию, поскольку просто не имеет в своем составе встроенных средств контроля типов. Это является еще одним проявлением принципа «программисту доступно все».
Книги схожие с «Руководство по программированию на Форте» по жанру, серии, автору или названию:
Izekbis - Fiction Book Designer 3.2. Краткое руководство Жанр: Программы Серия: member of book designer family |