RUS  ENG
Полная версия
ЖУРНАЛЫ // Программные системы: теория и приложения // Архив

Программные системы: теория и приложения, 2025, том 16, выпуск 4, страницы 319–352 (Mi ps490)

Прикладные программные системы

Интерактивные средства специализации программ

И. А. Адамович

Институт программных систем им. А. К. Айламазяна РАН, Веськово, Россия

Аннотация: Специализация программ — это адаптация программы под ограниченные условия ее работы. Специализация, среди прочего, может использоваться для оптимизации и преобразования абстрактных спецификаций в конкретные программы для различных вычислительных архитектур (CPU, SIMD, GPU, FPGA). Процесс специализации характеризуется множеством степеней свободы при принятии решений, что затрудняет получение предсказуемых результатов в полностью автоматическом режиме. Существуют два основных подхода к специализации: онлайн, где решения принимаются во время генерации остаточной программы, и оффлайн, обеспечивающая большую предсказуемость благодаря предварительному принятию многих решений. Однако эффективно специализировать программу с первой попытки часто бывает затруднительно, что требует применения метода проб и ошибок и интерактивных средств для визуализации последствий принимаемых решений.
В настоящей работе рассматривается проблема адаптации существующих методов специализации для работы в интерактивном режиме, поскольку многие из них требуют существенной доработки или замены. Предлагаются следующие методы, направленные на повышение управляемости и предсказуемости процесса специализации: работа с деревом абстрактного синтеза, визуализация результатов разметки, построение и фильтрация истории причин BT-разметки. Предлагаемые методы реализованы в специализаторе JaSpe для программ на языке Java. В результате установлено, что во многих случаях время на поиск источников проблем, препятствующих преобразованиям, сократилось на порядок.

Ключевые слова и фразы: интерактивная специализация, интерактивные средства, частичные вычисления, суперкомпиляция, метавычисления, IDE.

УДК: 519.681.3
ББК: 32.973

MSC: Primary 68N15; Secondary 68N19, 68N30

Поступила в редакцию: 01.12.2025
Подписана в печать : 29.12.2025

DOI: 10.25209/2079-3316-2025-16-4-319-352



© МИАН, 2026