Будь умным!


У вас вопросы?
У нас ответы:) SamZan.ru

Компилятор ~ программное средство которое используется для трансляции программ с языка высокого уровня

Работа добавлена на сайт samzan.ru: 2015-07-05


Основные функции компиляторов.

Компилятор – программное средство, которое используется для трансляции программ с языка высокого уровня. Основная задача компилятора состоит в поиске соответствия предложений исходного текста грамматическим конструкциям языка и генерация соответствующего кода для каждого предложения.

Функции:

  •  Лексический анализ – распознавание и классификация лексем.
  •  Синтаксический разбор – анализ предложений на соответствие конструкциям языка.
  •  Генерация объектного кода.

Лексический анализ. Происходит разбор текста программы. Используются три таблицы: таблица терминальных символов (хранит все ключевые слова и специальные символы, используемые в языке, а также коды, соответствующие каждому символу); таблица символических имен (заполняется в процессе разбора текста программы и хранит в себе имена идентификаторов); таблица литералов (заполняется в процессе разбора программы и хранит в себе литералы: численные и строковые значения, с указанием типов данных и относительных адресов).

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

Лексема

Код

program

1

var

2

begin

3

end

4

Лит.

Тип

Р.

А.

1

1

integer

2

0

2

100

integer

2

2

….

Идентиф.

Тип

1

I

integer

2

Y

integer

3

X

real

FOR I:=1 TO 100 DO Y:=X → <1,6><2,1><1,14><3,1><1,7><3,2><1,8><2,2><1,14><2,3>

Синтаксический разбор. Предложения программы распознаются как языковые конструкции используемой грамматики. Для того, чтобы выяснить, принадлежит ли предложение языку, необходимо построить алгоритм, который для любого предложения, допустимого грамматикой, давал бы последовательность выводов этой цепочки к начальному символу грамматики. Методы: восходящие и нисходящие. Например, метод операторного предшествования. Метод операторного предшествования основан на анализе пар последовательно расположенных операторов исходной программы и решением вопроса о том, какой из них должен выполняться первым.

A+B*C-D; + <∙ *; * ∙> -; В*С должно быть вычислено до обработки любых других операторов выражения. Для операторов языка программирования задается матрица предшествования. Предложение сканируется слева направо до тех пор, пока не будет найдено подвыражение, операторы которого имеют более высокий уровень предшествования, чем соседние операторы. Далее это подвыражение распознается в терминах правил вывода используемой грамматики. Этот процесс продолжается до тех пор, пока не достигнут корень дерева, что и будет означать окончание процесса грамматического разбора. Пример синтаксического дерева: READ (SUM)

Генерация объектного кода. Выполняется семантический контроль (анализ предложения с точки зрения смыслового значения предложений языка). Машинно-зависимая оптимизация. Для каждой грамматической конструкции определены алгоритмы генерации кода. Из отдельных объектов составляется объектный код программы. После генерации каждого фрагмента, указатель свободной памяти модифицируется таким образом, чтобы он указывал на первую свободную ячейку памяти.


<read>

EAD

(

id

)

{SUM}




1. темами существенно увеличился что обусловлено обнаружением роли в этом процессе регуляторных пептидов
2. тема 9 Eduction in Gret Britin 5 Twelve million children ttend bout 40
3. Курсовая работа- Гидравлический прыжок
4.  На основі приведених даних про підприємства А та Б розрахувати показники ділової активності і зробити відп
5. Когда Как долго С каких пор До каких пор Когда При
6. 3 на 4 см в блоке ОСНОВНЫЕ ПОКАЗАТЕЛИ нормативы Дата поступления
7. Реферат- Диагностические условия повышения адаптивности
8. Тема 5 АНАЛИЗ СЕБЕСТОИМОСТИ ПРОДУКЦИИ РАБОТ УСЛУГ 5
9. вариант Расчет цены методом полных издержек и методом предельных издержек Фирма выпускает пять видов прод
10. Модульная работа 2 ООДП Практические задания- На производственном участке обрабатывается парт
11. ЛАБОРАТОРНАЯ РАБОТА 2 ТЕХНОЛОГИЧЕСКИЙ КОНТРОЛЬ ФОРМЫ ПОЛИРОВАННЫХ ПОВЕРХНОСТЕЙ Цель работы изучение
12. СОЮБ С.И. Косолапова 2014 г.html
13. это одна из самых необычных и неожиданных историй успеха второй половины ХХ века
14. тема ЛВЗанкова Подготовила и провела- учитель начальных классов I квалификационной категор
15. 1 Настоящий федеральный государственный образовательный стандарт начального профессионального образован1
16. тематические процедуры модуляции и демодуляции детектирования
17. Первинні засоби пожежегасіння.html
18. Направления практического применения психологических исследований 8
19. Новые сомы
20. Мощность вместимость пропускная способность в соотв