Язык программирования Форт: великий и простой


Этой статьей мы начинаем цикл публикаций о языке программирования Форт и его современном потомке Advanced Forth. Здесь мы расскажем о происхождении Форта, его прошлом, настоящем и будущем. Следующие статьи будут посвящены изучению языка и вопросам практического применения.

Договоримся сразу: не будем портить статью комментариями типа "да кому это нужно?". Форт – он не для всех. Если кому-то кажется, что C#, Java или Python – вершина программирования, супер-языки, на которых можно сделать все, пусть так и будет. Мы не будем с этим спорить. Просто Форт – для других программистов.


Что же такое Форт и откуда он взялся?


В 1958-1959 г.г. в МГУ им. М.В. Ломоносова под руководством Н.П.Брусенцова была разработана и построена вычислительная машина "Сетунь", обладавшая рядом конструктивных особенностей, отличавших ее от ЭВМ "традиционной" архитектуры. Кроме использования "троичной" системы хранения чисел со знаком, это была стековая машина с постфиксной нотацией операндов. (О стеках и постфиксной нотации будет много в следующих статьях).

Машины "Сетунь" серийно производились в 1960-х, а к 1970 году была разработана следующая модель "Сетунь-70", в которой к указанным особенностям добавились развитое структурированное программирование с постфиксными процедурами и диалоговая среда программирования.

На Западе также проявляли интерес к такого рода машинам. Стек и постфиксная нотация оказались очень удобными и востребованными в условиях ограниченности аппаратных ресурсов, что привело к попыткам создать универсальный язык программирования на их основе.

В 1968-1970 г.г. при разработке программного обеспечения для радиотелескопа Национальной радиоастрономической обсерватории (США) была создана система программирования под названием FORTH. Автор системы, Чарльз Мур, впервые предложил упорядоченный список слов-процедур и детально описал язык программирования с постфиксной нотацией для стековой машины, а также технологию компиляции т.н. "шитого кода" этого языка.

Принимая во внимание, что работы в этом направлении проводились и другими исследователями, Ч. Муру удалось создать самую сбалансированную и законченную концепцию системы. К 1971 г. идеи Мура оформились в коммерческий продукт, известный как язык программирования Forth. Была создана компания FORTH Inc., успешно действующая и в настоящее время.

Популярность нового языка стремительно росла. Уже к концу 1970-х годов имелись версии практически для всех существующих аппаратных платформ, а в 1979 г. был принят первый официальный стандарт языка.

К началу 1980-х идеи, заложенные в ЭВМ "Сетунь", вернулись в СССР в виде популярного языка программирования Forth. В нашей стране чаще использовалось название Форт, а к середине 1980-х годов "русский" Форт превратился в самостоятельное ответвление стековых машин. С 1980 г. работы по Форт-системам получают поддержку на уровне Государственного комитета по науке и технике. В 1983 г. был принят новый стандарт Forth-83, на который ориентировались отечественные разработчики программного обеспечения.


"Золотой век" Форта пришелся на 1980-е. Язык входил в тройку самых распространенных для персональных компьютеров, наряду с Бейсиком и Паскалем. Были отрасли, в которых Форт стал "номером один". Его любили ученые, разработчики космической техники, роботов и промышленного оборудования.

BYTE August 1980 Vol.5 Num.8

Номер журнала BYTE, посвященный Форту. Август 1980 г.


Можно много рассказать о Форте в этот период истории, получится несколько отдельных статей. Отметим несколько интересных фактов.

В компании Apple многие программисты хорошо владели Фортом и использовали его в разработках программного обеспечения. Для работы с графикой на компьютере Apple II был разработан диалект Форта - GraForth.

Всем известный Apple Macintosh 1984 года мог бы оказаться совсем другим, не поругайся Джобс с Джефом Раскиным, первым руководителем проекта Macintosh. Джеф Раскин был фанатом Форта. Уйдя из Apple, он реализовал несколько проектов на Форте, один из которых – компьютер Canon Cat, выпущенный компанией Canon Inc.

Canon Cat

Компьютер Canon Cat, управляемый Форт-системой. 1987 г.


Форт стал основой для языка PostScript и формата PDF, которыми мы пользуемся и в настоящее время.

На Форте работает Open Firmware (OpenBoot) – встроенное программное обеспечение не-x86-компьютеров, выполняющее функции, аналогичные BIOS в x86-компьютерах.


В начале 1990-х произошли события, которые перевернули весь мир, в том числе и мир компьютеров и программ. Интернет стал доступен всем желающим через WWW – "всемирную паутину", а Советский Союз приказал долго жить. И то и другое привело к серьезному перераспределению интеллектуальных ресурсов и изменению предпочтений – тысячи программистов перешли в лагерь HTML и .COM . Последствия мы наблюдаем до сих пор.

Перемены коснулись и Форта. В России с середины 1990-х практически полностью прекратились публикации о Форте и связанных с ним темах, а в учебных программах исчезли какие-либо упоминания о языке.

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

Например, одна из старейших компаний-разработчиков Форт-систем, британская MPE, разместила на сайте список некоторых своих покупателей:

Apple, Astell Scientific, AWE, BAE, British Telecom, British Gas, Brown Root Vickers, CDS Advanced Technology bv, CEGB, Cementation, CMON Systems, Construction Computer Software, Department of Transport, Disarmco, Europay International, Farnell, GEC Plessey Avionics, Intersil, ISRO, ITT, JWK International, Lucas CAV, Marconi Space and Defence, Metropolitan Police, NASA, Nuclear Electric, Philips, Rolls Royce, Rushton Diesels, Rutherford Appleton Labs, Saab, Safer Systems, Shell UK Oil, Sun Microsystems, Thorn EMI, Trafalgar House, Yorkshire TV.

Примечательно, что это неполный список, поскольку некоторые клиенты заключают договор о неразглашении, о чем указано на сайте MPE. Применение Форта в разработках дает конкурентное преимущество, поэтому не все стремятся давать подсказки соперникам по рынку (не в этом ли причина "зачистки" Форта в нашей системе образования в 1990-е?). Ну и серьезные агентства, "название-которых-не-называют" тоже здесь не упомянуты.

NASA еще в начале 1980-х одобрило применение Форта для высоконадежных приложений. Для использования в космических аппаратах были разработаны специальные процессоры, выполняющие Форт-программы – сначала это были R65F11 от Rockwell, позже их сменили высокоскоростные форт-процессоры серии RTX2000 от Harris (Intersil).

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


В наши дни начинается ренессанс Форта.

За последние 3-4 года количество упоминаний Форта в Сети выросло в десятки (если не в сотни) раз. Продолжается выпуск Форт-процессоров, разрабатываются новые высокопроизводительные микросхемы.

Форт-процессор GA144

Форт-процессор GA144, Green Arrays, США (144 ядра)


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

Используя Форт можно создать программное обеспечение, характеристики которого недостижимы при использовании других средств программирования – малые объемы кода, высокое быстродействие, компактный, легко проверяемый исходный текст, высокая скорость разработки, интерактивность. Форт хорошо приспособлен для обработки текстов, его можно использовать как интерпретатор или транслятор с любого другого языка, даже специально придуманного для управления конкретным приложением.

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

Спасибо за внимание


[Начало статьи] [Следующая статья] [Все статьи]

Вы можете оставить комментарий к статье и задать вопросы на нашей странице в соцсети ВКонтакте

Вы можете оставить комментарий к статье и задать вопросы на нашей странице в соцсети Facebook