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


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

# 1465, книга: Ниобея
автор: Константа Галчинский

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

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

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

Жанр:

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

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

неизвестно

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

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

Год издания:

ISBN:

неизвестно

Отзывы:

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

Рейтинг:

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

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

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

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

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

фиксированной разрядной сетке числа с плавающей точкой. В действительности в составе современных процессоров имеются команды для работы с такими числами, и было бы естественно предоставить программисту доступ к ним. Следует отметить, что в математических сопроцессорах 80x87 фирмы Intel числа с плавающей точкой хранятся во внутреннем стеке, и система команд для работы с ними идеально согласуется с концепцией Форта.

Для чисел с плавающей точкой обычно выделяется отдельный стек (хотя стандартом допускается их хранение на стеке данных). Для платформы 80x86 естественно использовать аппаратный стек сопроцессора. Некоторым недостатком является его ограниченный объем – всего 8 ячеек, зато производительность Форта на операциях с плавающей точкой существенно возрастает из-за большей близости языка к аппаратуре.

Основные математические операции для чисел с плавающей точкой приведены ниже:


Имя Стековая нотация Описание F+ ( F: A, B → F: A + B ) Заменяет два верхних числа со стека с плавающей точкой их суммой. F– (F: A, B → F: A - B ) Заменяет два верхних числа со стека с плавающей точкой их разностью. F* (F: A, B → F: A * B ) Заменяет два верхних числа со стека с плавающей точкой их произведением. F/ (F: A, B → F: A / B ) Заменяет два верхних числа со стека с плавающей точкой частным от их деления. FABS (F: A → F: |A| ) Возвращает модуль числа. FNEGATE (F: A → F: –A ) Изменяет знак числа. FSQRT (F: A → F: sqrt A ) Возвращает квадратный корень из числа. FSIN (F: A → F: sin A ) Возвращает синус числа. FCOS (F: A → F: cos A ) Возвращает косинус числа. FEXP (F: A → F: eA ) Возвращает величину eA. FLN (F: A → F: lnA ) Возвращает натуральный логарифм числа.
Полный список поддерживаемых операций с плавающей точкой, вообще говоря, зависит от конкретной реализации Форта. Однако из приведенной таблицы понятен основной принцип выполнения вычислений с плавающей точкой – все операнды должны находиться на стеке, а слова Форта последовательно модифицируют их.

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


Имя Стековая нотация Описание FDUP ( F: A → F: A, A ) Дублирует верхнее число стека с плавающей точкой FDROP (F: A → ) Удаляет верхнее число со стека с плавающей точкой FSWAP (F: A, B → F: B, A ) Меняет местами два верхних числа на стеке с плавающей точкой FOVER (F: A, B → F: A, B, A ) Кладет на стек с плавающей точкой второе сверху число FROT (F: A, B, C → F: B, C, A ) Вращает три верхних числа стека с плавающей точкой в соответствии с приведенной стековой нотацией FDEPTH ( → A ) Возвращает глубину стека с плавающей точкой, число будет помещено на стек данных
И, наконец, для перемещения чисел между стеком данных и стеком с плавающей точкой существуют следующие слова.


Имя Стековая нотация Описание S>F ( F: A → A ) Переносит число со стека данных на стек с плавающей точкой. F>S ( A → F: A ) Переносит число со стека с плавающей точкой на стек данных. D>F ( D → F: A ) Переносит число двойной длины со стека данных на стек с плавающей точкой. F>D ( F: A → D ) Переносит число со стека с плавающей точкой на стек данных, формируя число двойной длины.
Эти слова выполняют преобразования формата, поэтому используйте их осторожно. Например, 5.1 F>S S>F даст в итоге 5, поскольку при переносе на стек данных было выполнено округление числа.

На основании изученных слов Форта попытаемся рассмотреть пример работы с транслятором. Для этого осталось сделать последний штрих – рассмотреть слова, позволяющие узнать результат вычислений. Ввиду того, что печать числа, находящегося на вершине стека – операция весьма частая, для этой цели используется чрезвычайно короткое слово – . (точка). Соответственно, для печати числа с плавающей точкой используется слово F. (в этом случае вывод произойдет в экспоненциальной форме, то есть в виде x.xxxxEyy; стандартом предусмотрено также слово FE. , выводящее результат в более привычном «инженерном» формате).

Итак, допустим, что нам необходимо найти длину гипотенузы по теореме Пифагора. Исходными данными при этом являются длины катетов. --">

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


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