Интервью по языку Форт [Чарльз X. Мур] (pdf) читать постранично

Книга в формате pdf! Изображения и текст могут не отображаться!


 [Настройки текста]  [Cбросить фильтры]

Чарльз X. Мур (Charles Н. Moore) родился в 1938 г.; вырос в штате Мичиган;
получил степень бакалавра по физике в MIT; женат на Уинфред Беллис, есть сын
Эрик. Сейчас живёт в Инклайн-Виллидж, на чудесном озере Тахо; водит WRX; ходит
горными туристическими маршрутами Тахо-Рим и ПасификКрест; много читает.
Получает удовольствие, находя простые решения, для чего может изменить задачу.
В 1960-е годы работал как независимый программист, пока не изобрёл в 1968 г.
Форт (Forth) - простой, эффективный и гибкий компьютерный язык, которым очень
гордится.
Занимался
программированием
телескопов
для
Национальной
радиоастрономической лаборатории (NRAO). В 1971 г. стал сооснователем фирмы
Forth, Inc., занимающейся программированием систем реального времени.
В 1983 г., недовольный имевшимся аппаратным обеспечением, стал сооснователем
Novix, Inc. Разработал в ней микропроцессор NC4000. Позднее он превратился в
Harris RTX2000, который подошёл для использования в космосе и теперь вращается
вокруг Сатурна на . В фирме Computer Cowboys с помощью специального
программного
обеспечения
разработал
ShBoom,
Mup20,
F21
and
i21
микропроцессоры с архитектурой Forth. Очень гордится этими маленькими, быстрыми
и экономичными процессорами.В этом столетии стал сооснователем IntellaSys и
придумал colorForth для программирования конструкторских инструментов для
многоядерного чипа. В 2008 г. IntellaSys производила и продавала 40-ядерную
версию процессора. В настоящее время Чарльз Мур переносит свои инструменты на
этот удивительный чип.

Форт
Форт (Forth) - это стековый, конкатенативный язык, созданный в 1960-х годах
Чарльзом Муром.
Его основная особенность:
использование стека для хранения данных и слов для операций, которые берут из
стека аргументы и помещают в стек результат.
Язык настолько компактен, что может использоваться как во встраиваемых
системах, так и в суперкомпьютерах, и достаточно выразителен, чтобы создавать
полезные программы длиной в несколько сотен слов.
Среди продолжателей идеи - colorForth самого Чака Мура (Chuck Moore), а также
язык программирования Factor.
Язык Форт и языковое проектирование
Как бы вы определили Форт?
Чак Мур: Форт - компьютерный язык с минимальным синтаксисом. Он характеризуется
наличием
явного
стека
параметров,
что
позволяет
эффективно
вызывать
подпрограммы. Отсюда постфиксные выражения (операторы пишутся после аргументов)
и стиль программирования с высокой степенью структурирования, при котором
множество коротких программ передают друг другу параметры через стек.
Приходилось читать, что название Forth означало четвёртое поколение ПО.
Не могли бы вы рассказать об этом подробнее?
Чак: происходит от fourth (четвёртый), что намекает на . Кажется, я перескочил через поколение.
Фортран/Кобол – языки первого поколения, Алгол/ Лисп - второго. Во всех этих
языках большую роль играл синтаксис.
Чем сильнее развит синтаксис, тем больше возможностей для проверки ошибок.
Однако большая часть ошибок - синтаксические. Я решил минимизировать синтаксис,
отдав предпочтение семантике. В самом деле, в Форте слова полны смысла.
Вы рассматриваете Форт как языковый набор инструментов. Можно понимать под этим
относительную
простоту
синтаксиса
в
сравнении
с
другими
языками
программирования и возможность создания словарей из более коротких слов. Или
что-то ещё?
Чак: Нет, главное то, что язык
Программа на Форте состоит из
Си состоит из меньшего числа
определение размером примерно

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

новых слов через уже существующие, и эта иерархия развивается, пока не
наберётся, скажем, тысяча слов.
Проблема в том, чтобы:
1) решить,какие слова полезны, и
2) запомнить их все. Я сейчас работаю над приложением, в котором тысяча слов.
И у меня есть инструменты для поиска слов, но искать слово можно, только если
знаешь, что оно существует, и примерно помнишь, как оно пишется. Это приводит к
особому стилю программирования, и нужно некоторое время, чтобы программист
привык так работать.
Я видел множество Форт-программ, которые выглядят, как Си-программы, буквально
переведённые на Форт. Но смысл не в этом, а в том, чтобы работать совсем подругому. Ещё одна интересная особенность этого набора инструментов в том, что
всякое новое определённое вами слово столь же эффективно и значимо, как слова,
изначально определённые в ядре. Здесь нет никакой дискриминации.
Связана ли такая наглядная структура из множества коротких слов с реализацией
Форт?
Чак: Она является результатом очень эффективной схемы вызова подпрограмм.
Отсутствует передача параметров, потому что это стековый язык. Есть только
вызов подпрограммы и возврат. Стек открыт. Машинный язык компилируется. Вход в
подпрограмму и