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


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

Хотя мы все время используем сочетание слов "язык программирования Форт", это не совсем правильно. Форт больше чем язык, это целая альтернативная философия решения задач программирования.


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

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

Далее полученный двоичный файл передается компоновщику, который собирает его вместе с другими двоичными файлами, например, из библиотек стандартных функций, в исполняемый файл операционной системы. Только этот файл может быть выполнен системой, и только запустив его на выполнение мы узнаем, работает ли программа в соответствии с заданным алгоритмом.

Перечисленные инструменты (препроцессор, транслятор, компоновщик) поставляются отдельно от операционной системы.

Существует и более короткий путь. Например, язык Бейсик традиционно использует интерпретатор исходного текста. Текст анализируется слово за словом и найденные операторы языка сразу выполняются. Если обнаруживается ошибка, интерпретация прекращается.

Интерпретатор не создает исполняемый файл с кодами машинных команд. Каждый раз, когда выполняется программа на Бейсике, ее текст интерпретируется заново, от первой строки до последней.

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

В первых персональных компьютерах интерпретатор Бейсика был частью встроенного программного обеспечения. Использование компьютера можно было начать и без установки операционной системы.


С Фортом все выглядит иначе. Вы можете прямо здесь и сейчас освоить синтаксис и лингвистические правила Форта:

1. Слова Форта состоят из любых символов, кроме пробела.
2. Форт-программа состоит из последовательности слов, разделяемых пробелом.

И на этом все!

Работая с Фортом, вы имеете дело с Форт-системой. Что такое Форт-система? Это специализированная операционная система, управляющая аппаратурой компьютера оптимальным образом с точки зрения выполнения Форт-программ. Такой компьютер уже правильнее называть Форт-компьютером (или Форт-машиной). Для общения с оператором и создания Форт-программ в этой системе выполняется интерактивная среда программирования на языке Форт.

Размеры весьма мощной Форт-системы могут быть не более, чем у интерпретатора Бейсика, что позволяет устанавливать ее в ПЗУ компьютера как встроенное программное обеспечение.

Здесь следует сделать отступление и пояснить, что речь идет о "правильном", настоящем Форте. Сейчас существуют различные варианты Форт-систем, которые можно запустить на компьютерах с Windows, Linux, MacOS, даже на смартфонах c Android. Безусловно, вы получите среду программирования классичеcкого Форта, но если смотреть объективно, это все-таки суррогат. Выполнение такого приложения не делает ваш компьютер или смартфон Форт-машиной, они все равно остаются Windows-машиной или Android-машиной, со всеми проблемами используемой операционной системы.


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

Процесс разбора введенной программистом текстовой строки соответствует интерпретации, например, в Бейсике, но текст строки нигде не запоминается. Если нет ошибок, Форт-система создает эквивалент введенного текста на уровне машинного кода и выполняет уже его. Это соответствует трансляции для других языков высокого уровня.

Минимально необходимый для функционирования Форт-системы набор слов, называемый словарем Форта, всегда существует на момент запуска системы.

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

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

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

Вот что сам Чарльз Мур писал об этом:

"Вы определяете каждое слово так, что ЭВМ знает его значение. Способ, которым она это знает, состоит в том, что при вызове исполняется некоторый последовательный код. Компьютер предпринимает действия сразу по каждому слову. Он не отправляет слово на хранение и не держит его в уме на будущее.
В философском смысле, я думаю, это означает, что машина "понимает" слово. Она понимает слово DUP, быть может, лучше вашего, поскольку в ее мозгах никогда не возникает сомнение по поводу того, что DUP означает.
Связь между словами, имеющими смысл для вас и имеющими смысл для компьютера, глубока. ЭВМ становится средством для связи между человеческим существом и концепцией."


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

Вот так проиллюстрировал место Форта в мире программного обеспечения известный популяризатор Форта Лео Броуди:

Two Points of View

"Две точки зрения". Рисунок Лео Броуди.


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

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

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


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

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

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