Начальный курс программирования на языке Форт
Л. Броуди
Перевод с английского В.А. Кондратенко Под редакцией Б.А. Кацева, В.А. Кириллина Предисловие И.В. Романовского МОСКВА «ФИНАНСЫ И СТАТИСТИКА» 1990
Коротко о книге
Мы начинаем изучать Форт — интересный и мощный машинный язык. Если вы новичок, желающий поближе познакомиться с компьютером, то Форт поможет вам в этом деле. Он в большей степени приспособлен для написания программ, чем любой другой язык (см. «Введение для начинающих»). Если вы умудренный опытом профессионал, который хочет изучить Форт, вам тоже нужна именно наша книга. Форт настолько отличается от остальных языков, что всем, от новичка до специалиста, рекомендуется изучать его с самого начала. Поэтому, если вы знаете другие языки программирования, забудьте их и оставьте в памяти только то, что вам известно о компьютере (см. «Введение для профессионалов»).
Поскольку книга предназначена для читателей с различными уровнями подготовки, она построена таким образом, чтобы можно было знакомиться лишь с тем материалом, который вам необходим. В тексте даются сноски, адресованные разным категориям читателей. Первая половина гл. 7 содержит основы машинной арифметики только для начинающих.
В книге объясняется, как писать простые прикладные программы на Форте. В нее включены все служебные слова языка, требуемые для разработки высокоуровневой прикладной программы в однозадачном режиме, — от команд, реализующих простые математические операции, до команд управления трансляцией. Команды, относящиеся к средствам мультипрограммирования, утилитам вывода на печать и обмена с дисками, а также к объектному компилятору, здесь опущены. Эти команды доступны в некоторых версиях Форта, например в полифорте. Я подобрал такие примеры программ, которые будут работать в Форт-системе при вводе данных с терминала и диска. Однако не следует считать, что использование Форта ограничивается задачами манипулирования со строками, — сфера его применения гораздо шире.
Как уже отмечалось, книга построена таким образом, чтобы максимально облегчить изучение языка. Все команды описываются дважды: первый раз — в том разделе, где они вводятся, и второй — в конце главы, где дается краткий обзор ее содержания. В приложении Б представлен указатель слов Форта в алфавитном порядке, а в приложении В они сгруппированы по областям применения. В конце каждой главы приводятся, кроме того, словарь терминов и упражнения, ответы на которые вы найдете в приложении А. В процессе изложения даются полезные рекомендации и предлагаются необязательные программы. Последние носят чисто иллюстративный характер и поэтому представлены здесь без каких-либо пояснений.
Следует отметить, что Форт — необычный язык. Он «попирает» многие устоявшиеся правила программирования. Первоначально я воспринял Форт крайне скептически, но по мере создания сложных прикладных программ мне начали открываться его красота и мощь. Постарайтесь относиться к нему без предубеждения, если вам что-то покажется странным. Лишь немногие программисты, освоившие Форт, возвращались снова к другим языкам программирования.
Оглавление
- К советскому читателю
- Предисловие к русскому изданию
- От автора
- Коротко о книге
- Введение
- Что такое машинный язык? (введение для начинающих)
- Области применения Форта (введение для профессионалов)
- Глава 1. ОСНОВЫ ФОРТА
- Живой язык
- Диалог
- Словарь
- Как правильно «объясняться» на Форте?
- Период исполнения и период компиляции
- Стек — рабочая область оперативной памяти для выполнения арифметических действий
- Постфиксная запись
- Работа со стеком
- Стековая нотация
- Основные термины
- Упражнения
- Глава 2. ВЫПОЛНЕНИЕ АРИФМЕТИЧЕСКИХ ОПЕРАЦИЙ
- Режим калькулятора
- Практические задачи на применение постфиксной записи (упражнение 2-А)
- Режим определений
- Решение задач (упражнение 2-Б)
- Операции деления
- Манипуляции со стеком
- Печать без изменения содержимого стека
- Задачи на выполнение операций со стеком и арифметических операций (упражнение 2-В)
- Двойные операции
- Основные термины
- Упражнения
- Глава 3. КАК РАБОТАТЬ НА ФОРТЕ
- Часть 1. Общие сведения
- Еще раз о словаре
- Использование дисковой памяти
- Правила записи Форт-программ
- Особенности программирования на Форте
- Загрузка программ
- Инструментальные средства работы с блоками
- Часть 2. Текстовый редактор Форта
- Программа-редактор
- Команды символьного редактирования
- Буфер поиска и буфер вставок
- Команды редактирования строк
- Комбинированные команды редактирования
- Основные термины
- Упражнения
- Литература
- Глава 4. КОМПЬЮТЕР «ПРИНИМАЕТ РЕШЕНИЯ»
- Условный оператор
- Более подробно об операторе IF
- Операции сравнения
- Альтернативная ветвь условного оператора
- Вложенные конструкции IF…THEN
- «Секрет» оператора IF
- Немного логики
- Два слова с встроенными операторами IF
- Основные термины
- Упражнения
- Глава 5. ОПЕРАЦИИ НАД ЦЕЛЫМИ ЧИСЛАМИ
- Сокращенные операции
- Смешанные математические операции
- Стек возвратов
- Арифметические операции над числами с плавающей точкой
- Почему программисты предпочитают масштабирование
- Операция масштабирования */
- Округление
- Возможности масштабирования
- Аппроксимация вещественных чисел
- Операции над дробными числами
- Заключение
- Основные термины
- Упражнения
- Литература
- Глава 6. ЦИКЛИЧЕСКИЕ СТРУКТУРЫ
- Циклы со счетчиком
- Ограничения на выполнение цикла
- Примеры использования оператора цикла DO
- Вложенные циклы
- Рекомендации по применению оператора DO в стиле Форта
- Циклы с условием
- Выход из цикла (LEAVE) и ветвление (BRANCH)
- Основные термины
- Упражнения
- Глава 7. ЧИСЛО ТИПОВ ЧИСЕЛ
- Часть 1. Для начинающих
- Чем отличаются числа со знаком и без знака
- Арифметический сдвиг
- Числа двойной длины
- Преимущества шестнадцатиричной системы счисления (и другие системы)
- Код для представления символьной информации (ASCII).
- Часть 2. Для всех
- Двоичная логика
- Числа со знаком и без знака
- Системы счисления
- Числа двойной длины
- Формирование чисел двойной длины без знака
- Форматирование чисел одинарной длины со знаком
- Операции над числами двойной длины
- Операции над числами различной длины
- Использование чисел в определениях
- Основные термины
- Упражнения
- Глава 8. ПЕРЕМЕННЫЕ, КОНСТАНТЫ И МАССИВЫ
- Переменные (общие сведения)
- Более подробно о переменных
- Переменная в качестве счетчика
- Константы
- Переменные и константы двойной длины
- Массивы
- Использование массива счетчиков
- Вычленение определений
- Организация цикла по массиву
- Массивы байтов
- Инициализация массива
- Основные термины
- Упражнения
- Глава 9. ФУНКЦИОНИРОВАНИЕ ФОРТ-СИСТЕМЫ
- Поиск по словарю
- Векторные вычисления
- Апостроф в определении
- Структура словарной статьи
- Адресация полей
- Структура определения через двоеточие
- Вложенные уровни вычислений
- Еще один вариант использования стека возвратов
- Выход на верхний уровень
- Произвольное изменение последовательности выполнения слов
- Рекурсия
- География Форта
- Мультизадачные Форт-системы
- Пользовательские переменные
- Контекстные словари (списки слов)
- Основные термины
- Упражнения
- Глава 10. ВВОД-ВЫВОД
- Блочные буферы
- Операторы вывода
- Вывод текста с диска
- Операции над строками в оперативной памяти
- Ввод с клавиатуры
- Ввод из входного потока
- Применение слова WORD
- Указатели входного потока, используемые словом WORD
- Преобразование вводимых чисел
- Построение программы ввода чисел с помощью слова KEY
- Сравнение строк
- Строковые литералы
- Основные термины
- Упражнения
- Литература
- Глава 11. РАСШИРЕНИЕ КОМПИЛЯТОРА: ОПРЕДЕЛЯЮЩИЕ И КОМПИЛИРУЮЩИЕ СЛОВА
- Что такое определяющее слово?
- Определяющие слова вы можете специфицировать сами
- Что такое компилирующее слово?
- Несколько дополнительных слов управления компиляцией
- Флаг состояния
- Введение в блок схемы Форта
- Заключение
- Основные термины
- Упражнения
- Литература
- Глава 12. ТРИ С ПОЛОВИНОЙ ПРИМЕРА
- Откачка файла
- Программисту о структуре прикладной программы
- Без взвешивания
- Форт ассемблер
- Усовершенствованный генератор бессмысленных сообщений
- Упражнения
- Литература
- Приложение А. ОТВЕТЫ К УПРАЖНЕНИЯМ
- Приложение Б. АЛФАВИТ СЛОВ ФОРТА
- Приложение В. СЛОВА ФОРТА, СГРУППИРОВАННЫЕ ПО ТЕМАМ