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

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

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


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

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

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

учитываете

ли

вы,

что

она

должна

хорошо

читаться

на

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