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


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

# 1734, книга: Ландыши — '47
автор: Виталий Владимирович Амутных

Роман "Ландыши - '47" Виталия Амутных - это захватывающая и душераздирающая история о любви и потере во время Великой Отечественной войны. Книга рассказывает о судьбах трех молодых людей: летчика Бориса, связистки Ольги и пехотинца Николая. Их пути переплетаются на фоне ужасов и лишений военного времени. Борис и Ольга влюбляются, но их счастье оказывается недолгим. Николай, друг Бориса, ревностно относится к их чувствам и пытается разрушить их отношения. Амутных мастерски изображает...

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

Майская ночь, или Утопленницы. Евгений Юрьевич Лукин
- Майская ночь, или Утопленницы

Жанр: Юмористическая фантастика

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

Серия: Капитаны русской фантастики

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

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

Жанр:

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

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

неизвестно

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

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

Год издания:

ISBN:

неизвестно

Отзывы:

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

Рейтинг:

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

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

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

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

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

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

Второе понятие – стек данных – неразрывно связано с первым. Действительно, при организации всего кода в виде коротких именованных блоков возникает проблема передачи данных между ними, без чего сколько-нибудь сложная программа просто немыслима. В различных языках программирования существует множество способов передачи аргументов, но самым эффективным является пересылка данных через стек. Такой способ, по сравнению, например, с передачей аргументов в переменной, позволяет не заботиться о том, насколько глубоко вложен вызов процедуры или функции, и не используется ли переменная, в которой мы хотим передать аргументы. Компиляторы процедурных языков передают параметры, просто помещая их на стек вместе с адресом возврата. Вызываемая процедура должна забрать свои аргументы со стека, произвести вычисления, и вернуть результат.

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

Обычно за сохранением баланса стека следит компилятор, подставляя в вызываемые подпрограммы соответствующие прологовые и эпилоговые части, выполняющие прием аргументов со стека и размещение возвращаемых данных. В некоторых процессорах есть специальные команды, облегчающие построение прологовой и эпилоговой частей. Например, начиная с 80286 в семействе процессоров Intel, были введены команды ENTER и LEAVE.

Форт решает проблему сохранения баланса стека весьма радикально и очень эффективно. Стек, в котором передаются аргументы для вызываемых слов, полностью отделен от стека возвратов! Любому слову можно передать избыточное число аргументов, не беспокоясь о том, куда произойдет возврат. Лишние аргументы просто останутся на стеке данных. Особенно упрощается построение самих слов – способ получения ими аргументов становится абсолютно однозначным. Любое слово разрабатывается с учетом того, что все необходимые аргументы уже лежат на стеке. Результат работы слова будет тоже помещен на стек данных, что не помешает возврату по правильному адресу.


Основное средство ввода новых понятий в Форте – так называемое определение через двоеточие. Это синтаксическая форма, которая позволяет ввести в состав словаря новое слово. Полученное таким образом слово немедленно становится равноправным членом словаря, и может участвовать в создании новых определений. Пример определения через двоеточие приведен ниже:


: НОВОЕ_СЛОВО СЛОВО1 СЛОВО2 СЛОВО3 ;


В приведенном примере было создано слово с именем НОВОЕ_СЛОВО. Именем слова считается фрагмент текста, находящийся непосредственно за двоеточием, за исключением ведущих пробелов. Имя может содержать любые символы (за исключением того же пробела). Вполне допустимо назначать имя, начинающееся с цифры, и даже состоящее из одних цифр. Максимальная длина имени различна в разных реализациях Форта, но все они должны обеспечивать длину как минимум 31 символ. Допустимо и перекрытие имен – можно использовать имя, которое уже имеется в словаре. При этом все дальнейшие обращения к слову с таким именем будут использовать последнее определение (однако ранее созданные слова будут по-прежнему использовать старую версию; подробнее об этом см. главу 8).

Действие, выполняемое определяемым словом, записывается сразу за его именем. Описание действия завершается словом ; (точка с запятой). Необходимо обратить особое внимание на то, что точка с запятой – это именно слово, а не элемент синтаксического оформления. Соответственно, она должна быть отделена хотя бы одним пробелом от предыдущего текста. В приведенном примере действие определяемого слова заключается в последовательном выполнении слов СЛОВО1, --">

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


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