Студопедия

Главная страница Случайная лекция


Мы поможем в написании ваших работ!

Порталы:

БиологияВойнаГеографияИнформатикаИскусствоИсторияКультураЛингвистикаМатематикаМедицинаОхрана трудаПолитикаПравоПсихологияРелигияТехникаФизикаФилософияЭкономика



Мы поможем в написании ваших работ!




Промежуточное представление (Intermediate Representation – IR)

IR представляет собой строго типизированное линейное представление потока инструкций. IR представляет функции на нескольких уровнях абстракции: от высокого машинно-независимого (HIR) до низкого машинно-зависимого (LIR).

Инфраструктура Phoenix использует промежуточное представление, для того чтобы представить поток функций в виде наборов операций передачи данных и/или управления.

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

IR строго типизировано. Тип результата определяется операндом и типами входных операндов. Инфраструктура Phoenix предоставляет средства для проверки соответствия типов.

Во время обработки HIR Phoenix предоставляет информацию о потоках данных в виде дерева выражений. В процессе обработки эти деревья преобразуются. То есть, преобразование промежуточного представления кода выглядит как последовательность деревьев выражений.

Код на языках высокого уровня (таких как C++, C# или J#) преобразуется в промежуточное представление при помощи компонент Phoenix. Инструментальные средства на основе Phoenix используют промежуточное представление. Таким образом, они могут обрабатывать код, изначально написанный на разных языках. Например, компоненты анализа, оптимизации или верификации, работающие с IR, могут быть повторно использованы в компиляторах различных языков высокого уровня.

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

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


<== предыдущая страница | следующая страница ==>
Введение в компиляцию | Сборки и модули

Дата добавления: 2014-12-09; просмотров: 230; Нарушение авторских прав




Мы поможем в написании ваших работ!
lektsiopedia.org - Лекциопедия - 2013 год. | Страница сгенерирована за: 0.003 сек.