Эта публикация цитируется в
3 статьях
Программное и аппаратное обеспечение для суперЭВМ
Специализатор JaSpe: алгоритм внутрипроцедурного анализа времени связывания программ на подмножестве языка Java
И. А. Адамовичa,
Ю. А. Климовb a Институт программных систем им. А. К. Айламазяна РАН
b Институт прикладной математики им. М. В. Келдыша РАН
Аннотация:
Анализ времени связывания в частичных вычислениях, нацеленных на оптимизацию программ, разделяет программные конструкции на статические и динамические. Статические конструкции исполняются специализатором, а динамические переходят в результирующую программу. Частичные вычисления применяются в основном для нетривиальной компиляции программ без компилятора, при наличии лишь интерпретатора и специализатора. Эффективность их существенно зависит от качества разметки программы, получаемой в результате анализа времени связывания.
Статья посвящена особенностям алгоритма анализа времени связывания специализатора JaSpe, разрабатываемого авторами данной публикации для широко распространенного объектно-ориентированного языка Java. Она содержит основные понятия, использованные при реализации анализа времени связывания, внутрипроцедурную версию алгоритма и обсуждение деталей анализа конструкций, использующих ссылочные типы данных.
Алгоритм отличается от предшествующих аналогов, из числа работающих с программами на объектно-ориентированных языках, нетривиальной обработкой конструкций ветвления (if, switch), циклов (for, while, do) и блочных инструкции, которые содержат последовательность других инструкций. От аналогичных алгоритмов, работающих с императивными и функциональными языками, он отличается использованием BT-объектов, которые позволяют получать более точную разметку — c большей долей статических конструкций — при обработке объектно-ориентированных программ. Алгоритм ориентирован на интерактивность и удобочитаемость результатов.
Ключевые слова и фразы:
современные языки программирования, статический анализ программ, преобразование программ, метавычисления, смешанные вычисления, интерактивная специализация.
УДК:
519.681.3
ББК:
Э973.2
MSC: Primary
97P30; Secondary
97P20,
97P40 Поступила в редакцию: 17.01.2020
Подписана в печать : 20.02.2020
DOI:
10.25209/2079-3316-2020-11-1-3-29