Homepage Program Systems: Theory and Applications Русская версия
ISSN 2079-3316 Bilingual online scientific Online scientific journal of the Ailamazyan Program System Institute of the Ailamazyan PSI of PSI of Russian Academy of Science of RAS 12+ 
Volume 16 (2025) . Issue 4 (69) . Paper No. 12 (459)

Applied software systems

Research Article

Interactive tools for program specialization

Igor Alekseevich AdamovichCorrespondent author

Ailamazyan Program Systems Institute of RAS, Ves'kovo, Russia
Igor Alekseevich Adamovich — Correspondent author igor@igor-adamovich.ru

Abstract. Program specialization is the adaptation of a program to specific conditions of its execution. Specialization can be used, among other applications, for optimization and transformation of abstract specifications into concrete programs for various computational architectures (CPU, SIMD, GPU, FPGA). The specialization process is characterized by numerous degrees of freedom in decision-making, which complicates achieving predictable results in fully automatic mode. There are two main specialization approaches: online, where decisions are made during residual program generation, and offline, providing greater predictability through pre-made decisions. However, effectively specializing a program on the first attempt is often difficult, requiring trial-and-error methods and interactive tools for visualizing the consequences of design decisions.

This paper addresses the problem of adapting existing specialization methods for interactive operation, as many require substantial modification or replacement. We propose methods to improve manageability and predictability of the specialization process: working with abstract syntax trees, constructing and filtering causality histories, and visualizing annotation results. Implemented in the JaSpe specializer for Java, these methods reduce problem-source identification time by an order of magnitude in many cases. (In Russian).

Keywords: interactive specialization, interactive tools, partial evaluation, supercompilation, metacomputations, IDE

MSC-20202020 Mathematics Subject Classification 68N15; 68N19, 68N30MSC-2020 68-XX: Computer science
MSC-2020 68Nxx: Theory of software
MSC-2020 68N15: Theory of programming languages
MSC-2020 68N19: Other programming paradigms (object-oriented, sequential, concurrent, automatic, etc.)
MSC-2020 68N30: Mathematical aspects of software engineering (specification, verification, metrics, requirements, etc.)

For citation: Igor A. Adamovich. Interactive tools for program specialization. Program Systems: Theory and Applications, 2025, 16:4, pp. 319–352. (In Russ.). https://psta.psiras.ru/2025/4_319-352.

Full text of article (PDF): https://psta.psiras.ru/read/psta2025_4_319-352.pdf.

The article was submitted 01.12.2025; approved after reviewing 29.12.2025; accepted for publication 29.12.2025; published online 30.12.2025.

© Adamovich I. A.
2025
Editorial address: Ailamazyan Program Systems Institute of the Russian Academy of Sciences, Peter the First Street 4«a», Veskovo village, Pereslavl area, Yaroslavl region, 152021 Russia;   Website:  http://psta.psiras.ru Phone: +7(4852) 695-228;   E-mail: ;   License: CC-BY-4.0License text on the Creative Commons site
© Ailamazyan Program System Institute of Russian Academy of Science (site design) 2010–2026