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

-  Интервью по языку Форт  285 Кб, 14с. скачать: (pdf) - (pdf+fbd)  читать: (полностью) - (постранично) - Чарльз X. Мур

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


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

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

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

с

новой

машиной,

вы

немедленно

Чак: Да. На самом деле, простейшим способом понять, как работает эта машина и
каковы её особенности, была оценка лёгкости реализации на ней стандартного
набора слов Форта.
Как вы пришли к изобретению косвенного шитого кода?
Чак: Косвенный шитый (indirect-threaded) код - довольно тонкое понятие.
Для каждого слова Форта есть запись в словаре. В косвенном шитом коде каждая
запись указывает на код, который нужно выполнить, когда встретится это слово.
Косвенный шитый код указывает на место, где находится адрес этого кода.
Это позволяет получить другую информацию помимо адреса - например, значение
переменной. Вероятно, это было самое компактное представление слов. Доказано,
что оно эквивалентно прямому шитому коду и подпрограммному коду. Конечно, в
1970 году эти понятия и термины не были известны. Но мне показалось, что это
самый естественный способ реализовать широкий круг различных слов.
Какое влияние окажет Форт на компьютерные системы будущего?
Чак: Оно уже оказывается. Я уже 25 лет работаю с микропроцессорами,
оптимизированными для Форта, и в самое последнее время - с многоядерным
процессором, ядра которого представляют собой Форт-компьютеры.
Что даёт Форт? Будучи простым языком, он довольствуется простым компьютером.
256 слов оперативной памяти, 2 стека, 32 команды, асинхронная работа, простая
связь с соседями. Небольшой, с малым энергопотреблением.
Форт поощряет структурирование программ. В результате они хорошо удовлетворяют
требованиям многоядерных процессоров для параллельной обработки. Большое
количество простых программ побуждает тщательно продумать каждую из них.
И требуется при этом какой-нибудь 1% объёма кода,который был бы написан в
других случаях. Слыша, как кто-то похваляется миллионами строк кода, я уверен,
что этот человек вопиющим образом не разобрался в своей задаче. Нет в наше
время задач, которые требовали бы миллионов строк кода. Зато есть небрежные
программисты,плохие начальники и неоправданные требования к совместимости.
Запрограммировать на Форте множество небольших компьютеров - превосходное
решение. Другие языки не обладают достаточной модульностью или гибкостью. В
процессе уменьшения размеров компьютеров и налаживания взаимодействия между их
сетями (smart dust - ?) формируется среда будущего.
Это похоже на одну из главных идей UNIX: