Affiliation:
1. Институт программных систем им. А. К. Айламазяна РАН, Веськово, Россия
2. Институт прикладной математики им. М. В. Келдыша РАН, Москва, Россия
Abstract
Барьеры на пути специализации реальных программ, написанных
в объектно/̄ориентированной парадигме, часто могут быть преодолены при
помощи современных методов метавычислений. Один из барьеров —
необходимость разрешения полиморфизма на этапе анализа программы, до ее
исполнения. Эта проблема успешно решается для ряда случаев
в специализаторе JaSpe, что показано в данной статье. Работа посвящена
компиляции программ с использованием метода специализации, без
использования компилятора. Мы применили специализатор JaSpe, основанный
на методе частичных вычислений, к двум интерпретаторам языка
арифметических выражений, написанным на Java. Интерпретаторы были
реализованы методом рекурсивного спуска и с использованием шаблона
«посетитель». В результате успешной специализации данных интерпретаторов
по программе вычисления квадратного корня на языке арифметических
выражений были получены скомпилированные версии программы на языке Java.
При этом скорость полученных версий программы по сравнению с исходной
увеличилась в 12-22 раза.
Publisher
Ailamazyan Program Systems Institute of Russian Academy of Sciences (PSI RAS)