Applied software systems
Research Article
Interactive tools for program specialization
Igor Alekseevich Adamovich
| Ailamazyan Program Systems Institute of RAS, Ves'kovo, Russia | |
|
|
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-2020
68N15; 68N19, 68N30For 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.