СоНоты

Язык программирования ФОРТ

Язык программирования ФОРТ (FORTH - в переводе с английского - "вперед") создан Чарльзом Х. Муром в конце 60-х годов. Вот что он рассказывает относительно необычности названия своего языка: "Свои первые результаты я получил в то время, когда работал с моделью IBM 1130 - ЭВМ третьего поколения. Они показались мне настолько значительными, что я посчитал новый язык языком машин четвертого (fourth) поколения и назвал его Fourth (четвертым), если бы модель 1130 допускала пятисимвольные идентификаторы. Таким образом Fourth превратился в Forth (ФОРТ) - своеобразная игра слов".

По словам Ч. Мура, основной целью создания нового языка было повышение собственной производительности. Он пишет: "Традиционные языки программирования не обеспечивали желаемой для меня мощности, легкости и гибкости. Я подсчитал, что за 40 лет очень хороший программист может написать 40 программ, а мне хотелось гораздо больше. В мире столько вещей, которые нужно сделать, что мне требовался инструмент, способный помочь в этом" (по словам Мура, в своем окончательном виде язык повысил его производительность в 10 раз).

Первым применением языка ФОРТ стала созданная в 1971 году Муром программа для Национальной радиоастрономической обсерватории в г. Китт-Пик, шт. Аризона, которая в реальном масштабе времени управляла системой наведения 11-метрового телескопа. Затем им был разработан первый компилятор, заменивший используемый для этого кросс-ассемблер.

В 1973 году Ч. Мур, Э. Разер и Н. Конклин основали фирму Forth Inc., которая тиражировала системы, пригодные не только для обсерваторий, но и для других специальных применений. В середине 70-х годов фирма представляла язык ФОРТ на гибких магнитных дисках для реализации на микропроцессорах Intel 8080, 8086, Z80, LSI-11, Motorola 6800, TI 9900, а также для мини-ЭВМ PDP-11 фирмы DEC, Nova и Eclipse фирмы Data General и др.

Что же такое ФОРТ? "ФОРТ - необычный язык. Он "попирает" многие устоявшиеся правила программирования" - начинает свою книгу по ФОРТу Л. Броуди. Основным понятием ФОРТа является слово, под которым понимается любая последовательность символов (включая и знаки препинания), отличных от пробелов. Язык имеет простой синтаксис. Программа представляет собой последовательность отдельных слов, воспринимаемых как текст печатного издания. Семантика отдельного слова в программе на момент ее исполнения определена либо реализацией (множеством обязательных слов согласно существующему стандарту), либо программистом, который может определять новые слова, пользуясь уже известными системе. Это определение, помеченное специальным символом, записывается как обычная последовательность в тексте. ФОРТ допускает использование кириллицы, символьную обработку, рекурсию, работу с любыми внешними устройствами и обладает возможностями ряда других языков.

Из характерных особенностей языка ФОРТ выделяют следующие:

К недостаткам языка относят:

Появление ФОРТа, как отмечают некоторые ученые, в частности А. Вулф, было воспринято профессионалами неоднозначно. Одни высказывали сомнение, а язык ли это вообще и если язык, то низкого или высокого уровня; вторые считали ФОРТ вехой в развитии языков программирования; третьи - шагом в сторону. Достойное место среди языков программирования он занял после ряда успешных реализаций на мини- и микро-ЭВМ. С появлением персональных компьютеров кривая популярности ФОРТа резко подскочила вверх, и по некоторым утверждениям, вывела его к середине 80-х годов на третье место после БЕЙСИКа и ПАСКАЛя.

В 1977 году Ким Харрис из Кремниевой долины организовал группу под названием ФИГ (FORTH Interest Group), которая в следующем году создала упрощенный интерпретатор языка для персональных компьютеров под названием ФИГ-ФОРТ (FIG-FORTH), продававшийся по очень низкой цене. ФИГ-ФОРТ завоевал огромную популярность у массового пользователя. У нас в стране система ФИГ-ФОРТ реализована на мини-ЭВМ СМ-4 с операционными системами ОС РВ и РАФОС.

Язык ФОРТ нашел применение во многих областях науки и техники, в частности при разработке трансляторов и операционных систем; для сбора и анализа данных; в системах машинной графики; при создании экспертных систем; для управления станками и роботами и т.д.

Хорошая реклама ФОРТу была сделана летом 1985 года, когда после 16 дней упорных поисков франко-американская научная экспедиция с помощью подводного аппарата "Арго" в водах Северной Атлантики на глубине более 3 км обнаружила затонувший в 1912 году океанский лайнер "Титаник". Компьютерная система, установленная на подводном аппарате и предназначенная для автоматического управления видеокамерами, работала по программе, написанной на языке ФОРТ.

В настоящее время как за рубежом, так и в нашей стране осуществлены и успешно развиваются аппаратные реализации языка ФОРТ, так называемые ФОРТ-процессоры (один из первых выпустил Ч. Мур), которые выполняют слова ФОРТа как машинные команды.

В 1983 году был выпущен стандарт на язык ФОРТ - "ФОРТ-83".

В США с 1978 года издается периодический журнал "FORTH Dimensions", предназначенный для массового пользователя. А для программистов-профессионалов с 1983 года выходит журнал "The Journal of Forth Application and Research". Начиная с конца 70-х годов проводятся ежегодные конференции, посвященные проблемам развития ФОРТ-систем.

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

При комиссии по технологии программирования при ГКНТ в рамках рабочей группы по технологии программирования в 1985 году была создана целевая подгруппа по языку ФОРТ, в задачи которой входило распространение опыта использования ФОРТ-систем.

В последние годы ленинградские разработчики ФОРТ-систем создали научно-производственный кооператив "ФОРТ-Инфо" для развития и распространения ФОРТ-Систем в различных областях человеческой деятельности.

Приведем в заключение одно высказывание автора языка: "ФОРТ представляет человеку удобные средства общения "умными машинами", которыми он себя окружает. Следовательно, этот язык должен обладать свойствами естественных языков, включая компактность, разносторонность и расширяемость. Я считаю его лучшим языком для написания программ, изложения алгоритмов или объяснения работы компьютера...".

//Вычислительная техника и ее применение, N12'90