2. Построение промежуточного представления среднего уровня (обзор). (УМК ВМК)
Описание файла
Файл "2. Построение промежуточного представления среднего уровня (обзор)." внутри архива находится в папке "УМК ВМК". Документ из архива "УМК ВМК", который расположен в категории "". Всё это находится в предмете "конструирование компиляторов" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Онлайн просмотр документа "2. Построение промежуточного представления среднего уровня (обзор)."
Текст из документа "2. Построение промежуточного представления среднего уровня (обзор)."
2. Построение промежуточного представления среднего уровня (обзор).
Сначала необходимо построить промежуточное представление верхнего уровня – АСТ. О том, как это делается, рассказал в своем курсе В. А. Серебряков. Напомню это на тривиальном примере.
Пусть исходная «программа» написана на языке Си. Поскольку все ее строки обрабатываются независимо (используется КС-грамматика), пример состоит всего из одной строки:
s += h;
Лексический, синтаксический и контекстный анализ исходного кода, построение абстрактного синтаксического дерева и таблицы символов (промежуточное представление верхнего уровня).
Построение промежуточного представления среднего уровня – трехадресный код (четверки).
Замечание. Конструкция a[tl] означает обращение к элементу массива и, по существу, совпадает с соответствующей конструкцией языка C. На самом деле для промежуточного языка такая конструкция имеет слишком высокий уровень и препятствует оптимизации программы, скрывая детали вычисления адреса элемента массива. В современных промежуточных языках рассматриваемая конструкция заменяется группой инструкций промежуточного языка, вычисляющих адрес соответствующего элемента массива и запоминающих его. Например, в промежуточном языке IR LLVM системы LLVM (с этим языком слушатели ознакомятся при выполнении домашнего задания) конструкции a[tl] соответствует следующая последовательность инструкций: