Реализация мультипарадигменного внутреннего представления оптимизирующего компилятора
Кареба Юрий Сергеевич
Группа 22126
Руководитель:
Трепаков Иван Сергеевич
Аннотация
Многие современные языки программирования являются мультипарадигменными, совмещая элементы функциональной, императивной, объектно-ориентированной и других парадигм. Однако, в компиляторах таких языков используется внутреннее представление, специфичное одной конкретной парадигме, к которой приводятся возможности остальных парадигм. Так, многие компиляторы объектно-ориентированных языков используют вариант SSA-представления, в котором возможности других парадигм выражаются с помощью объектов и указателей, а компиляторы функциональных языков обычно представляют программу в стиле передачи продолжений (Continuation Passing Style, CPS), к которому приводятся императивные фрагменты. При таком сведении происходит ухудшение качества оптимизаций и анализов, которого удается избежать при использовании внутреннего представления, адекватного моделируемой парадигме.
Целью квалификационной работы является расширение SSA-представления оптимизирующего компилятора элементами CPS и исследование влияния такого расширения на существующие анализы и оптимизации. Предполагается выполнить экспериментальную реализацию и провести сравнительный анализ производительности на базе оптимизирующего статического компилятора многоязыковой виртуальной машины Huawei.