Руководство по программированию на Форте [Илья Тарасов] (fb2) читать постранично

- Руководство по программированию на Форте 545 Кб, 67с.  (читать) (читать постранично) (скачать fb2) - Илья Тарасов

Настройки текста:




Илья Тарасов РУКОВОДСТВО ПО ПРОГРАММИРОВАНИЮ НА ФОРТЕ

1. Основные сведения о языке

Язык программирования Форт (Forth) появился в 1970 г. благодаря работам Чарльза Мура. К моменту создания первого транслятора Форта уже существовали языки программирования третьего поколения, к которым относятся, в частности, Си и Паскаль. Язык, разработанный Муром, настолько отличался от них, что был отнесен к языкам программирования четвертого поколения, или Fourth generation level. Однако компьютер, использовавшийся для создания первого транслятора, допускал максимум пять символов в обозначениях, поэтому название Fourth («четвертый») было сокращено до Forth. Быстрый рост популярности Форта приходится на 70-е годы, когда оказалось, что при весьма умеренной сложности разработки транслятора этот язык обеспечивает хорошую альтернативу программированию на языке ассемблера. На протяжении своего существования Форт использовался для решения широкого ряда задач. В настоящий момент наиболее перспективными областями его применения являются управление в автоматизированных системах, в том числе на базе микроконтроллеров, построение интерпретирующих систем и скриптовых языков, создание вычислительных и графических программных пакетов.

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

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

Форт не является просто «еще одним языком», который отличается только экзотическим синтаксисом. В действительности все синтаксические особенности этого языка преследуют одну цель – обеспечить максимально простое построение программного кода. Полноценный транслятор Форта, включающий в себя интерпретатор, компилятор и основные библиотеки, можно создать в пределах десяти килобайт. Полноценные трансляторы для 32-разрядных платформ, включающие в себя расширенные библиотеки и полноценную поддержку возможностей операционной системы, занимают около 30 килобайт. Все это является следствием максимальной простоты используемых при компиляции правил, однако взамен приходится использовать чуть усложненный по сравнению с привычным синтаксис. Следует иметь в виду, что усложненная для программиста запись конструкций языка является в то же время предельно упрощенной для транслятора. В действительности Форт отличается тем, что он ориентирован не на синтаксис, а на удобство выполнения процессором своих команд.

Основу программной модели Форта можно выразить с помощью двух понятий – словарь и отдельный стек данных. Именно они определяют свойства этого языка.

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

Второе понятие – стек данных – неразрывно связано с первым. Действительно, при организации всего