Аннотация:
Барьеры на пути специализации реальных программ, написанных в объектно-ориентированной парадигме,
часто могут быть преодолены при помощи современных методов метавычислений.
Один из барьеров — необходимость разрешения полиморфизма на этапе анализа программы, до ее исполнения.
Эта проблема успешно решается для ряда случаев в специализаторе JaSpe, что показано в данной статье.
Работа посвящена компиляции программ с использованием метода специализации, без использования компилятора.
Мы применили специализатор JaSpe, основанный на методе частичных вычислений, к двум интерпретаторам языка
арифметических выражений, написанным на Java. Интерпретаторы были реализованы методом рекурсивного спуска и
с использованием шаблона «посетитель». В результате успешной специализации данных интерпретаторов по
программе вычисления квадратного корня на языке арифметических выражений были получены скомпилированные
версии программы на языке Java. При этом скорость полученных версий программы по сравнению с исходной
увеличилась в 12-22 раза.
Ключевые слова и фразы:интерпретаторы, компиляторы, частичные вычисления, специализация, метавычисления.