Язык Форт и его реализации



             

Шитый код и его разновидности


Логически можно выделить два подхода к реализации языков программирования — трансляцию и интерпретацию []. Транслятор преобразует входной текст программы в машинный код данной ЭВМ; впоследствии этот код, объединяясь с другими машиниыми модулями, образует рабочую программу, которую можно загрузить в оперативную память и исполнить. Интерпретатор непосредственно исполняет программу на языке высокого уровня, рассматривая входной текст как последовательность кодов операций, управляющих его работой. Между этими полюсами располагается целый спектр промежуточных подходов, состоящих в предварительном преобразовании входного текста программы в некоторый промежуточный язык с последующей интерпретацией получившегося кода. Чем ближе промежуточный язык к машинному языку, тем ближе данный подход к классической трансляции, а чем ближе он к исходному языку программирования, тем ближе этот подход к интерпретации.

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

В общем случае промежуточный язык состоит из набора элементарных операций, средств управления локальной памятью для хранения и передачи данных и средств управления процессом вычисления. Однако если по своей сложности промежуточный язык приближается к исходному машиннонезависимому языку программирования, то целесообразность его использования снижается. Одним из приемов, направленных на упрощение набора команд промежуточного языка, является применение стековой архитектуры (или нуль-адресных команд). В этом случае для работы с памятью требуется всего две операции: перенести значение со стека в память и наоборот из памяти в стек.


Содержание    Вперед