Перейти к содержимому

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

Язык программирования ФОРТ (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 и др.

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

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

  • наличие стека данных, применяемого для обмена аргументами и отдельными словами-функциями;
  • возможность работы с объектами типа "словарь", описывающими активный в данный момент список слов, известный системе;
  • динамическое (в момент использования) переключение режимов "интерпретация-компиляция", которое позволяет реализовать сложные структуры памяти и управления;
  • наличие двух уровней расширения языка с помощью так называемых определяющих слов и с помощью специального слова ":" (двоеточие);
  • встроенный в ФОРТ язык Ассемблер позволяет эффективно реализовывать аппаратно зависимые функции сопряжения с другими системами программирования.

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

  • необычность выражений и отсутствие арифметики с плавающей точкой;
  • отсутствие типов;
  • трудность чтения текстов программ;
  • трудности перевода программ на другие языки;
  • использование польской записи и необычной формы предложения IF...ELSE...THEN.

Появление ФОРТа, как отмечают некоторые ученые, в частности А. Вулф, было воспринято профессионалами неоднозначно. Одни высказывали сомнение, а язык ли это вообще и если язык, то низкого или высокого уровня; вторые считали ФОРТ вехой в развитии языков программирования; третьи - шагом в сторону. Достойное место среди языков программирования он занял после ряда успешных реализаций на мини- и микро-ЭВМ. С появлением персональных компьютеров кривая популярности ФОРТа резко подскочила вверх, и по некоторым утверждениям, вывела его к середине 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 году, хотя работы по реализации языка на отечественных компьютерах начались раньше. Среди реализованных систем необходимо отметить следующие.

  • Единый ФОРТ для микропроцессоров К580, К1801, К1810 разработан сотрудниками ЛГУ и НИИСчетмаша. Система установлена на СМ-3, СМ-4, СМ-1800, ДВК, "Электроника-60", ЕС-1840, "Корвет" и др.
  • Система ФОРТ-ЕС разработана С.Н. Барановым в ЛИИАНе для ЕС ЭВМ и работает под управлением операционных систем ОС ЕС и СВМ ЕС.
  • Система Астро-ФОРТ разработана сотрудниками ИТА АН СССР и ЛИИАН для ПЭВМ ЕС 1840.
  • Система ФОРТ "Искра-226" создана в Институте социально-экономических проблем АН СССР.
  • Система ФОРТ-М6000 разработана ленинградцем В.Н. Патрышевым для ЭВМ М6000, она ориентирована на стандарт "ФОРТ-83".
  • Система ФОРТ-БЭСМ-6, созданная И.Р.Агамирзяном (ИТА АН СССР и ЛИИАН) для ЭВМ БЭСМ-6, работает под управлением операционной системы ДИСПАК.
  • Система ФОРТ-Эльбрус, разработанная в ЛГУ А.Е. Соловьевым для МВК "эльбрус", работающая под управлением ОС "Эльбрус".
  • Система ФОРТ-Тарту, созданная сотрудниками ВЦ Тартуского государственного университета, работает под управлением ОС РВ и UNIX.

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

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

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *