Хочу всё знать: язык Форт

Краткая справка о почти забытом герое.
2 минуты10372

Язык Форт, созданный Чарльзом Муром в 1971 году, никогда не был особо популярен в СССР, поэтому в образовательных учреждениях о нём практически ничего не говорят. Между тем, вплоть до 90-х годов 20 века это был один из популярнейших языков программирования, он активно использовался как в бытовых компьютерах, так и в военных целях. Сегодня, конечно, Форт не слишком актуален. Однако его формат, подход, реализованный здесь, всё ещё могут здорово размять ваш мозг, не отняв много времени на изучение.

Краткая справка

Начнём с главного — Форт не имеет никакого отношения к Фортрану. В оригинале язык пишется, как «Forth», что является упрощением от «Fourth» (четвёртый), что, в свою очередь, является отсылкой к планам Мура по его применению на ЭВМ 4-го поколения. 

Изначально стояла задача найти замену трудночитаемым и массивным языкам того времени, в частности, Ассемблеру. Так на свет появился Форт — чрезвычайно простой язык программирования, в базовой версии содержащий лишь около 40 слов.

Главная особенность заключена в определении, Форт — конкатенативный язык, использующий склейки слов и фрагментов кода для получения композиции, а стека для хранения и возвращения аргументов, что упрощает запись и повышает быстродействие. Дабы не углубляться в дебри синтаксиса, можете перейти на официальный сайт (или в его русскую часть) и разобраться во всём самостоятельно.

Внешний вид рабочего кода в простейшем случае поражает своей простотой:

.( HELLO WORLD);

Но стоит немного углубиться, как Форт становится на таким однозначным:

\ Создать «константу» из строки
: S-CONSTANT ( c-addr u "<spaces>name" -- )
  CREATE
    DUP , 0 ?DO
      DUP C@ C, CHAR+
    LOOP DROP 0 C,
  DOES>
    DUP CELL+ SWAP @
;

Тогда, в 70-х годах, Американскому астрономическому обществу, где совершенно случайно Мур и работал, язык пришёлся по душе. Достаточно быстро коды, написанные для контроллеров, добрались до космических шаттлов и искусственных спутников, а позднее и до остальной промышленности.

Среди известных «клиентов» Форт — подводный челнок, проводивший исследование Титаника, система управления аэропорта Эр-Рияда, анализатор крови и система компьютерного зрения.

Форт сегодня

Не совсем правильно думать, что язык Форт остался жить в XX веке. Несмотря на то, что успешным Форт-программистом вы уже станете вряд ли, отголоски сегодняшнего героя вы можете найти, например, в языке PostScript, используемом для печати, и в привычном нам формате файлов PDF.

Кроме того, важно понимать, что Форт — это не просто очередной язык программирования со своими плюсами и минусами, который затем необходимо транслировать в машинный код. По сути, Форт — это и есть машинный язык, но с отличной от привычной реализацией. Проще всего это показать на примере процессора, недавно выпущенного самим Муром и его компанией GreenArrays для демонстрации возможностей диалекта colorForth — GA144. Процессор включает в себя 144 независимых ядра, каждое из которых может выполнять свою строго описанную операцию.

В этом существенное отличие от привычного подхода, когда код, написанный на Си, генерирует миллион инструкций, которые одновременно исполняются всеми ядрами. При этом GA144 еще и энергоэффективен, так как активируются ядра только при поступлении инструкций. Итоговое потребление — 100 нВт в «спящем» режиме, а при исполнении инструкции ядрами затрачивается всего 7 пДж.

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

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

Так что Форт не остался в 90-х, у него всё ещё может быть яркое будущее.

языки программированияweb_developer
Нашли ошибку в тексте? Напишите нам.
Спасибо,
что читаете наш блог!