Анализ времени связывания в частичных вычислениях, нацеленных на оптимизацию программ, разделяет программные конструкции на статические и динамические. Статические конструкции исполняются специализатором, а динамические переходят в результирующую программу. Частичные вычисления применяются в основном для нетривиальной компиляции программ без компилятора, при наличии лишь интерпретатора и специализатора. Эффективность их существенно зависит от качества разметки программы, получаемой в результате анализа времени связывания.
Статья посвящена особенностям алгоритма анализа времени связывания специализатора JaSpe, разрабатываемого авторами данной публикации для широко распространенного объектно/ориентированного языка Java. Она содержит основные понятия, использованные при реализации анализа времени связывания, внутрипроцедурную версию алгоритма и обсуждение деталей анализа конструкций, использующих ссылочные типы данных.
Алгоритм отличается от предшествующих аналогов, из числа работающих с программами на объектно-ориентированных языках, нетривиальной обработкой конструкций ветвления (if, switch), циклов (for, while, do) и блочных инструкции, которые содержат последовательность других инструкций. От аналогичных алгоритмов, работающих с императивными и функциональными языками, он отличается использованием BT-объектов, которые позволяют получать более точную разметку — c большей долей статических конструкций — при обработке объектно-ориентированных программ. Алгоритм ориентирован на интерактивность и удобочитаемость результатов.