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


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

# 2867, книга: Исполнитель
автор: Сергей Анатольевич Рублёв

"Исполнитель" Сергея Рублёва - это мощная и провокационная история, которая исследует сложную природу власти, этики и человеческой психики. Роман разворачивается в мрачном и угнетающем мире, где власть сосредоточена в руках элиты, известной как "Исполнители". В центре повествования - Адам, молодой человек, который невольно оказывается втянут в этот опасный мир. Адам, чьи моральные принципы подвергаются проверке, становится участником смертоносной игры, где ему предстоит...

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

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

Жанр:

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

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

неизвестно

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

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

Год издания:

ISBN:

неизвестно

Отзывы:

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

Рейтинг:

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

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

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

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

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

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

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

Ключевой операцией в теореме Пифагора является возведение в квадрат длины катета. Определим слово KVADRAT , которое будет заменять верхнее число стека данных его квадратом.


: KVADRAT ( A --> A^2 ) DUP * ;


В скобках приведены комментарии, которые никак не отражаются на процессе описания слова. За вычетом комментариев, оказывается, что все слово состоит всего из двух понятий – копирование верхнего числа на стеке (слово DUP) и перемножение двух верхних чисел. Поскольку DUP создало точную копию верхнего числа, результатом такого перемножения будет возведение исходного числа в квадрат.

Теперь мы можем вычислить квадрат гипотенузы как сумму квадратов катетов.


: PIFAGOR^2 ( A, B --> A^2+B^2)

    KVADRAT            \ A, B^2

    SWAP               \ B^2, A

    KVADRAT            \ B^2, A^2

    +

;


Обратите внимание на слово SWAP между двумя словами KVADRAT. Нам требуется обеспечить нужный порядок чисел на стеке, а после выполнения первого слова KVADRAT на вершине стека окажется квадрат одного из катетов. Выполнение SWAP отправляет его вниз, помещая на вершину второй катет. Теперь мы можем сложить квадраты катетов, получив квадрат гипотенузы.

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


3 4 PIFAGOR^2 .


В результате на экране будет напечатан результат: 25.


Полученные слова, KVADRAT и PIFAGOR^2 можно теперь использовать в любых последующих определениях. Поскольку они, наравне с базовыми словами Форта, работают со стеком данных, никакой разницы не будет заметно. Вновь вводимые понятия не являются ни процедурами, ни функциями, ни чем-либо еще, принципиально отличающимся от базового синтаксиса языка. Программист может создать удобный для него набор математических операций с привычным для себя синтаксисом. Обратите внимание на использование специальных символов в слове PIFAGOR^2. Большинство реализаций Форта позволят определить и слово ПИФАГОР^2, использующее русские буквы в названии. Для имитации стиля С/С++ и подобных процедурных языков можно использовать и вариант Pifagor^2(A,B). Следует, правда, учесть, что скобки и названия переменных в них не являются самостоятельными объектами – транслятор Форта будет воспринимать всю эту запись целиком.

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


: FKVADRAT FDUP F* ;

: FPIFAGOR FKVADRAT FSWAP FKVADRAT F+ FSQRT ;


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


3.00E0 4.00E0 FPIFAGOR FE.


Результатом будет 5.0000000. В этом примере мы использовали экспоненциальную форму записи исходных чисел. В результате Форт не смог преобразовать введенные фрагменты текста в целочисленный формат, зато наличие десятичной точки и символа E показало, что эти фрагменты могут быть числами с плавающей точкой. Такие преобразования завершились успешно, и на стеке с плавающей точкой оказались нужные нам аргументы. Далее слово FPIFAGOR выполнило над ними необходимые вычисления и мы смогли посмотреть результат словом FE. Можно было бы использовать и F., получив результат в экспоненциальной форме – 5.0000000E0.

3. Структуры управления

Построение сколько-нибудь сложной программы немыслимо без использования структур управления, позволяющих организовать условное выполнение операций, циклы (обычные и со счетчиком) и другие действия, изменяющие обычный линейный порядок выполнения программы. Форт, разумеется, не является исключением, предоставляя в распоряжение программиста полноценный набор структур управления. Интересно здесь то, что структуры управления являются не специальными зарезервированными понятиями транслятора, а равноправными словами Форта! Как мы видим, даже при организации работы программы Форт не делает исключений. В результате запись структур управления выглядят так же необычно, --">

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


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