Forth — это не просто язык, это способ думать. Вы начинаете с чистого листа и создаёте свой собственный язык, идеально подходящий для решения именно вашей задачи
Лео Броди, автор культовой книги «Thinking Forth»

Одним холодным зимним днём 1970 года сотрудник Национальной радиоастрономической обсерватории США Чарльз Х. «Чак» Мур писал программу для управления гигантским телескопом. Задача была мучительно знакома каждому программисту той эпохи: очередное крошечное изменение в алгоритме требовало перекомпиляции всей программы, которая занимала полчаса и запускалась раз в сутки.

Система, в которой он работал, имела одно из самых ранних ограничений: имена файлов не могли быть длиннее пяти символов. Это простое техническое ограничение не только определило название языка, но и стало невероятной и эффективной дисциплиной для создания концептуально нового подхода к программированию — стека и минимализма.

История создания: от астрономии до микрочипов

Форт родился не в университетских аудиториях и не в лабораториях корпораций. Это был личный проект одного человека — Чарльза Х. «Чака» Мура, родившегося 9 сентября 1938 года.

В конце 1960-х Мур работал в Национальной радиоастрономической обсерватории (NRAO), разрабатывая программное обеспечение для управления телескопами. Существующие языки — Фортран, Кобол, PL/I — были слишком громоздкими. Каждая правка требовала перекомпиляции всего кода, а время машинного доступа было расписано по минутам.

Решением, которое пришло к Муру, было не создание нового компилятора, а новый способ строить программы. В 1971 году он совместно с Джеффри Личем разработал первую реализацию языка для компьютера Burroughs B-5500. Это и был Форт — язык, где программа состоит из маленьких, гибких и настраиваемых «слов», а данные живут на стеке.

Название языка забавно и очень технологично: Мур назвал его «FOURTH» (четвёртое поколение). Но компьютеры IBM 1130, на которых он работал, могли хранить в именах файлов только пять символов. Буква «U» была лишней, и так появился FORTH. А вместе с этим названием — и язык, освобождающий от любых ограничений.

Интересно, что вдохновение для создания языка пришло к Муру задолго до этого — ещё в 1957 году, когда он, будучи второкурсником MIT, наблюдал за запуском первого советского «Спутника-1». Именно тогда, отслеживая траектории космических аппаратов на огромных вычислительных машинах, он впервые задумался, как сделать программирование более гибким и быстрым.

Сегодня FORTH — символ элегантности и эффективности. Его программы представляют собой просто «слова», разделённые пробелами, работающие со стеком. Нет никакого синтаксиса. Есть только вы, ваша задача и стек.

Минимализм и расширяемость

В Форте нет догм, нет предрассудков. Есть только стек и слова. Всё остальное — творчество программиста

Главная идея Форта — минимализм. Весь язык строится вокруг стека. Данные кладутся на стек, операции их оттуда забирают, а результат возвращается обратно. Нет переменных? Есть стек. Нет операторов? Есть «слова» — маленькие, переиспользуемые кирпичики, которые программист пишет сам.

В чём магия Форта? Вы можете создавать собственные «слова», и они ничем не отличаются от встроенных команд. Вы постепенно поднимаетесь на всё более высокие уровни абстракции, пока не получите язык, который идеально описывает именно вашу задачу.

В своей минималистичности Форт — главный конкурент Лиспа. Только Лисп строит свои вычисления на списках, а Форт — на стеке. При этом размер минимальной реализации Форта составляет всего 340 байт машинного кода.

Связь с аппаратурой

В конце 1980-х — начале 1990-х годов, когда персональные компьютеры только начинали завоёвывать мир, существовала спецификация IEEE 1275-1994 — Open Firmware. Это была кроссплатформенная прошивка, написанная на Форте и предназначенная для инициализации аппаратного обеспечения.

Загружая компьютер, вы могли войти в консоль Open Firmware и напрямую вводить команды Форта, чтобы настроить оборудование, посмотреть регистры устройств или даже загрузить операционную систему по сети. Каждая плата расширения для таких систем поставлялась с небольшим FCode-скриптом — программой на Форте, которая рассказывала основной системе, как с этой платой работать, независимо от архитектуры процессора.

Open Firmware использовалась в рабочих станциях Sun SPARCstation (под названием OpenBoot), а затем стала известна благодаря PowerPC Mac от Apple. Сегодня Open Firmware живёт в проекте OpenBIOS и используется, например, в Raspberry Pi Pico.

Главными героями космической программы стали процессоры серии Harris RTX, ведущие свою родословную от оригинальной разработки Чака Мура. Их ключевая особенность — радиационно-стойкое исполнение, жизненно важное для работы в условиях открытого космоса.

Чак Мур не остановился на сотрудничестве с Harris. Он продолжил создавать всё более минималистичные процессоры, развивая свою идею предельной простоты и эффективности.

Обратная польская запись и стек

Вместо знакомого вам с детства `2 + 3 =` используется `2 ENTER 3 +` — это обратная польская запись (RPN). Это основа Форта. В Форте программа `3 4 +` означает: положи число 3 на стек, затем число 4 на стек, затем выполни сложение, которое снимет два верхних числа, сложит их и положит результат обратно.

Именно этот принцип лежал в основе целого класса инженерных калькуляторов — от программных систем вроде dc в Unix до советских программируемых калькуляторов. Вводя `8 ENTER 2 /`, вы получали результат — не осознавая, что только что написали маленькую программу на Форте.

Именно эта стековая модель Форта легла в основу советских программируемых калькуляторов. Вводя `8 ВВОД 2 /`, вы получали результат — и одновременно писали маленькую программу на языке, близком к Форту. Не случайно советский язык DSSP, использовавшийся в системах «Наставник» и на ЭВМ «Сетунь», имеет синтаксис, почти неотличимый от Форта.

В Советском Союзе Форт также нашёл своих энтузиастов. Например, существовал «Форт Шихова» для компьютеров РК-86. Кроме того, в конце 1980-х С. Баранов разработал технологию портирования программ, основанную на Форте, которая использовалась, в частности, на учебных компьютерах УКНЦ.

Основы синтаксиса: примеры кода на Forth

1. Арифметика со стеком

Самое простое: положить два числа на стек и сложить их.

3 4 + .   \ Положит 3 и 4 на стек, сложит, затем точка выведет результат 7

В Форте каждое действие — это «слово». `+` берёт два верхних числа со стека и возвращает их сумму.

2. Слова: создаём свои команды

Вот как выглядит создание простейшего слова `double` (удвоить верхнее число):

: double ( n -- 2n )   \ Описание: (вход — выход)
  2 *                  \ Умножить верхнее число на 2
;

Теперь лово double — полноценная команда Форта, которую можно использовать везде.

3. Управляющие конструкции

Форт не использует скобки. Условие строится так:

: compare ( a b -- )
  2DUP = IF ." равны" THEN      \ 2DUP дублирует два верхних числа стека
  2DUP > IF ." больше" THEN
  2DUP < IF ." меньше" THEN
  DROP DROP                     \ убираем копии чисел
;

Главная особенность: IF проверяет верхушку стека, а ELSE и THEN просто отмечают границы выбора.

4. Циклы

Циклы в Форте выглядят непривычно, но логичны:

: squares ( -- )         \ вывести квадраты чисел от 0 до 9
  10 0 DO
    I DUP * .
  LOOP
;

Слово DO берёт со стека два числа: верхнее — конечное значение, следующее — начальное.

5. Манипуляции со стеком

Стек иногда нужно переставлять вручную:

: swap-add ( a b -- b+a )   \ поменять местами два верхних числа
  SWAP +
;

Классические SWAP и DUP — основа Форта.

6. Вывод данных

Простой вывод числа:

42 .        \ напечатает 42
." Привет!" \ напечатает строку
CR          \ перевод строки

Современное состояние

В 2026 году Форт остаётся языком для узких задач. Его по-прежнему любят за минимализм, скорость и гибкость в сильно ограниченных системах. Например, в 2025 году один из разработчиков написал решения для ежегодного конкурса «Advent of Code» на Форте, спустя 40 лет после первого знакомства с языком.

В криптовалютах (в частности, в Bitcoin) используется стековый язык сценариев Script, вдохновлённый Фортом. А в мире ретро-вычислений Форт продолжает жить: существуют операционные системы Collapse OS и Dusk OS, полностью написанные на Форте, которые могут работать на машинах с минимальными ресурсами.

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

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

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

Chat on Telegram