Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Главы 2,3.doc
Скачиваний:
2
Добавлен:
02.08.2019
Размер:
93.7 Кб
Скачать

2.11. Интерпретаторы

Интерпретатор – это программа, которая непосредственно выполняет код исходной программы.

Его преимущество перед компилятором состоит в том, что не нужно последовательно вызывать компилятор, компоновщик, загрузчик и т. д.

Интерпретаторы традиционно не пытаются что – либо оптимизировать.

Как правило, интерпретатор переводит исходный код программы в код некой абстрактной машины (см. рис.).

Рис. Структура интерпретатора

Если предположить, что машинный код компьютера совпадает с выработанным интерпретатором абстрактным кодом, то интерпретатор превратится в компилятор. Поэтому в действительности провести различие между интерпретатором и компилятором очень трудно установить.

История создания интерпретатора связана с разработкой Pascal – компилятора для получения машинного кода ЭВМ CDC 6400. Никлаус Вирт создал компилятор, который вырабатывал код, названный Р – кодом, для абстрактной стековой машины. Написав программы по преобразованию исходного модуля в Р – коды в машинные коды конкретной машины, им были получены соответственно интерпретатор и компилятор для языка Pascal.

Условная схема процесса выполнения программы в среде интерпретатора

Считается, что интерпретаторы легко писать, так как они не машинно-ориентированные.

3. Элементы лингвистического обеспечения.

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

3.1. Синтаксис

Лексика – словарный состав (набор) языка, который используется при информационном общении.

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

Синтаксис задается с помощью формальной нотации. Самая распространенная формальная нотация – это расширенная форма Бекуса-Наура (РФБН). Синтаксис в РФБН начинается с верхнего уровня и, после применения декомпозиции объекта, достигает уровня отдельного символа. Например, в языке С синтаксис условного оператора if задается правилом:

If (выражение) оператор [else оператор];

Имена “выражение и оператор ” представляют синтаксические категории. Символы : if, else : , - фактические символы, которые должны появиться при использовании оператора if. else – оператор, указанный в квадратных скобках [ ], не является обязательным.

Правила синтаксиса легче изучить на диаграмме:

Рис. Синтаксическая диаграмма

В кругах находятся фактические символы, а в прямоугольниках – синтаксические категории, которые имеют собственные диаграммы. Последовательность символов, получаемых при последовательном прохождении пути на диаграммах, является программой.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]