# Inspectable Control for Structure-Preserving Software Regeneration

Canonical HTML: https://aogavrilov.com/uk/publications/inspectable-control/

Document language: uk

Контроль із можливістю перевірки для регенерації програмного забезпечення зі збереженням структури

Керована часткова регенерація коду з використанням ієрархічних дискретних латентних представлень.

[Alexey Gavrilov](https://orcid.org/0009-0006-3147-5430) 1 [Alan-Barsag Gazzaev](https://orcid.org/0009-0000-0334-312X) 1 [Mikhail Mozikov](https://orcid.org/0000-0003-0594-867X) 2 [Ilya Makarov](https://orcid.org/0000-0002-3308-8825) 2 [Sergey Muravyov](https://orcid.org/0000-0002-4251-1744) 1

1. [ITMO University, Saint Petersburg, Russian Federation](https://en.itmo.ru/)
2. [AXXX, Москва, Російська Федерація](https://axxx.tech/)

[Читати повний текст статті у форматі HTML](https://aogavrilov.com/publications/inspectable-control/full-text/) Текст із можливістю пошуку, що містить формули, таблиці, рисунки та бібліографію.

Підготовлений автором до друку рукопис з остаточним списком авторів і DOI. CC BY 4.0 author manuscript; the ACM DOI page remains the version of record. [Умови оприлюднення та повторного використання](https://creativecommons.org/licenses/by/4.0/) .

## Стаття за 30 секунд

**Дослідницьке питання** Як генеративна модель може змінювати вибрані частини програми, зберігаючи визначені елементи її грубої структури?

### Проблема

Модифікація коду за допомогою ШІ часто потребує однієї обмеженої зміни за незмінності вибраної структури програми. Регенерація всієї програми може порушити не пов’язані із завданням ділянки, а обмеження на рівні токенів не надають грубозернистої поверхні керування.

### Підхід

У дослідженні 64-токенні функції Python кодуються за допомогою ієрархічної VQ-VAE, вибрані грубі дискретні коди фіксуються, а для локалізованої регенерації коду в решті латентних позицій застосовується маскована дискретна генерація.

### Основний результат

Фіксація чотирьох кодів верхнього рівня підвищує частку успішного синтаксичного аналізу з 0.453 до 0.591, при цьому частка змінених незаблокованих позицій і далі становить 0.936, а частка унікальних умовних зразків — 0.998.

### Чому це важливо

Результати демонструють вимірюваний компроміс між стабільністю та свободою змін у керованому редагуванні коду й частковій регенерації програм. Вони надають попередні свідчення на користь латентного рівня контролю, який можна перевірити, але не доводять семантичної еквівалентності чи функціональної коректності.

## Анотація

Такі процеси програмної інженерії, як виправлення з обмеженнями, поетапне уточнення та модифікація зі збереженням структури, потребують контролю над тим, що змінюється, а що залишається незмінним. Генерація на рівні токенів є слабким засобом керування такими операціями, оскільки обмежує локальну текстову форму, а не грубозернисті структурні інваріанти, які часто потрібно зберігати у програмній інженерії. Ми досліджуємо ієрархічні дискретні латентні представлення як проміжне представлення програмних артефактів із можливістю перевірки: ієрархічна VQ-VAE стискає функцію Python завдовжки 64 токени у грубозернисті й дрібнозернисті дискретні коди, а маскована дискретна генерація за часткових обмежень регенерує лише вибрані позиції. На 2 000 попередньо опрацьованих функціях Python фіксація чотирьох кодів верхнього рівня підвищує частку успішного синтаксичного аналізу з 0.453 до 0.591, водночас зберігаючи значну частку змін у незаблокованих позиціях (свобода редагування — 0.936) і майже максимальну унікальність зразків (різноманітність — 0.998). За фіксованого грубозернистого контексту уточнення нижчого рівня є слабшим, але залишається монотонним, що узгоджується з інтерпретацією ієрархії від грубозернистого до дрібнозернистого рівня. Загалом результати надають попередні свідчення на користь практичного рівня контролю, що уможливлює обмежену регенерацію програмних артефактів зі збереженням структури на рівні вище за токени.

Місце публікації Матеріали 34-ї Міжнародної конференції ACM з основ програмної інженерії

Тип внеску Метод керування в латентному просторі

5 липня 2026 року с. 1406–1407 Супровідний постер

DOI [https://doi.org/10.1145/3803437.3807386](https://doi.org/10.1145/3803437.3807386)

## Зміст На цій сторінці

## Ключові результати

| Налаштування | Частка успішного синтаксичного аналізу | Каркас | Підпис | Зміна в незаблокованій частині |
| --- | --- | --- | --- | --- |
| Вхідні дані (скорочено) | 0.994 | 0.994 | 0.994 | — |
| Реконструкція кодека | 0.857 | 0.848 | 0.493 | 0 |
| Безумовна генерація | 0.453 | 0.08 | 0 | 0.995 |
| Умовний режим, префікс k=4 | 0.591 | 0.295 | 0.061 | 0.936 |
| Умовний режим, діапазон сигнатури | 0.6 | 0.302 | 0.063 | не повідомлено |

**Ключовий результат.** Фіксація грубозернистих латентних кодів підвищує синтаксичну стабільність, не нівелюючи змін у редагованій ділянці; результат демонструє структурний контроль, але не гарантує функціональної еквівалентності.

Завантажити результати: [CSV](https://aogavrilov.com/publications/inspectable-control/results.csv) [JSON](https://aogavrilov.com/publications/inspectable-control/results.json) [Markdown](https://aogavrilov.com/publications/inspectable-control/results.md) Зовнішнє дзеркало: [Картка набору даних Hugging Face](https://huggingface.co/datasets/aogavrilov/inspectable-control-results)

## PDF і цитування

**Цитувати цю статтю** Рекомендованим форматом є BibTeX. Усі наведені нижче варіанти сформовано з одного запису про публікацію.

```
@inproceedings{Gavrilov2026InspectableControl,
  title      = {Inspectable Control for Structure-Preserving Software Regeneration},
  author     = {Gavrilov, Alexey and Gazzaev, Alan-Barsag and Mozikov, Mikhail and Makarov, Ilya and Muravyov, Sergey},
  booktitle  = {Proceedings of the 34th ACM International Conference on the Foundations of Software Engineering},
  publisher  = {ACM},
  year       = {2026},
  pages      = {1406--1407},
  doi        = {10.1145/3803437.3807386},
  url        = {https://doi.org/10.1145/3803437.3807386},
  isbn       = {979-8-4007-2636-1},
}
```

Файли цитування: [Текст у форматі APA](https://aogavrilov.com/publications/inspectable-control/citation-apa.txt) [Текст у форматі IEEE](https://aogavrilov.com/publications/inspectable-control/citation-ieee.txt) [RIS](https://aogavrilov.com/publications/inspectable-control/citation.ris) [CSL-JSON](https://aogavrilov.com/publications/inspectable-control/citation.json) [Schema.org JSON-LD](https://aogavrilov.com/publications/inspectable-control/metadata.jsonld) [OAI-DC XML](https://aogavrilov.com/publications/inspectable-control/oai-dc.xml) [OpenAIRE v4 XML](https://aogavrilov.com/publications/inspectable-control/openaire.xml) [MODS XML](https://aogavrilov.com/publications/inspectable-control/mods.xml) [XML метаданих JATS 1.4](https://aogavrilov.com/publications/inspectable-control/metadata.jats.xml) [Повнотекстовий XML у форматі JATS 1.4](https://aogavrilov.com/publications/inspectable-control/full-text/article.jats.xml) [RDF Turtle](https://aogavrilov.com/publications/inspectable-control/metadata.ttl) [Набір посилань (JSON)](https://aogavrilov.com/publications/inspectable-control/linkset.json) [Набір посилань (HTTP)](https://aogavrilov.com/publications/inspectable-control/linkset) [RO-Crate](https://aogavrilov.com/publications/inspectable-control/ro-crate-metadata.json)

DOI: [https://doi.org/10.1145/3803437.3807386](https://doi.org/10.1145/3803437.3807386)

Повні настанови

## Повні дослідницькі настанови

## Метод

## 

Метод стискає коротку функцію Python у два рівні дискретних кодів, фіксує вибрані грубі позиції та повторно генерує решту позицій, перш ніж декодувати їх назад у код.

1. Закодувати Стисніть 64-токенну функцію Python до 16 кодів верхнього рівня та 32 кодів нижнього рівня за допомогою ієрархічної VQ-VAE.
2. Зафіксувати Оберіть грубі позиції кодів, що представляють структуру, яку слід зберегти, наприклад префікс, який охоплює діапазон сигнатури функції.
3. Перегенерувати Виконуйте масковану дискретну генерацію лише для розблокованих позицій, а завершену ієрархію декодуйте назад у вихідний код.
4. Перевірити Перш ніж приймати результат регенерації, оцініть частку успішного синтаксичного аналізу, структурні проксі-показники, зміни в незаблокованих позиціях та унікальність зразків.

![Вибрані грубі коди програми залишаються фіксованими, тоді як масковані точні дискретні коди генеруються повторно й декодуються у змінену функцію Python.](https://aogavrilov.com/publications/inspectable-control/hierarchical-discrete-latent-code-editing.svg)

**Ієрархічне редагування дискретних латентних кодів зберігає вибрану грубозернисту структуру програми й водночас регенерує дрібнозернисті коди в редагованій ділянці.* Джерело: [Створена автором пояснювальна схема на основі опублікованих методу та результатів.](https://doi.org/10.1145/3803437.3807386) . Умови повторного використання: [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) . Рекомендоване посилання: Gavrilov et al. (2026), Inspectable Control for Structure-Preserving Software Regeneration. [Завантажити SVG](https://aogavrilov.com/publications/inspectable-control/hierarchical-discrete-latent-code-editing.svg) .*

### Ключова ідея

Керування застосовується до вивченого представлення над рівнем токенів: грубі латентні позиції явно визначають місця, де структуру можна зафіксувати, залишивши сусідні деталі реалізації доступними для редагування.

### Відмінність від споріднених підходів

Обмеження на рівні запиту або токенів діють на поверхневий текст. Запропонований інтерфейс надає дискретні точки грубого й точного контролю та вимірює відповідний компроміс між стабільністю і свободою.

### Що нового

У роботі запропоновано й оцінено ієрархічний рівень латентного контролю з можливістю перевірки для регенерації програмних артефактів в окреслених межах.

## Питання, на які допомагає відповісти ця стаття

## 

Відкрийте запитання, щоб отримати стислу відповідь, що ґрунтується на статті. Докладні межі доказовості наведено в розділі «Обмеження».

1. Як ШІ може редагувати код, не переписуючи все цілком? У статті досліджено часткову регенерацію коду на рівні вище за токени. Ієрархічна VQ-VAE відображає коротку функцію Python у грубозернисті й дрібнозернисті дискретні коди; вибрані грубозернисті позиції фіксують, а маскована дискретна генерація перед декодуванням змінює лише решту латентних позицій. Так задається явна межа збереження замість регенерації всієї функції.
2. Які методи забезпечують збереження структури програми під час генерації коду? У цій роботі випробувано ієрархічний дискретний латентний контроль. Грубі латентні позиції можна зафіксувати, а незаблоковані — регенерувати, після чого виміряти частку успішного синтаксичного розбору та структурні проксі-показники. Отримані свідчення стосуються ймовірнісної структурної стабільності коротких функцій Python; вони не встановлюють точного збереження AST, семантичної еквівалентності чи функціональної коректності.
3. Чи можуть ієрархічні дискретні латентні представлення забезпечити локалізований контроль над кодом? В описаному експерименті на 2,000 функціях фіксація чотирьох кодів верхнього рівня підвищила частку успішного синтаксичного аналізу з 0.453 до 0.591. Водночас змінилися 0.936 незаблокованих позицій, а частка унікальних умовних зразків становила 0.998. Ці результати є попереднім свідченням того, що грубі латентні обмеження можуть зберігати частину структури, не усуваючи свободи локального редагування чи різноманітності зразків.
4. Як у генерації коду збалансувати стабільність структури та різноманітність? У статті стабільність і свободу оцінюють разом, а не оптимізують лише валідність. Фіксація грубих кодів підвищує синтаксичну валідність, тоді як зміни в незаблокованих позиціях залишаються значними, а умовні зразки — майже цілком унікальними. Результат демонструє вимірюваний компроміс між стабільністю та свободою в дослідженій конфігурації, а не універсальний оптимум.
5. Як ця робота пов’язана з редагуванням коду за допомогою LLM? Випробувана модель — ієрархічна VQ-VAE з маскованою дискретною генерацією, а не велика мовна модель. Проте проблема керування актуальна й для редагування за допомогою LLM, адже непотрібні зміни поза запитаною ділянкою становлять практичну проблему. Внесок статті — додатковий механізм у латентному просторі та підхід до оцінювання, а не бенчмарк редагування за допомогою LLM.

## Порівняння зі спорідненими підходами

## 

| Можливість | Контроль на рівні токенів | Ієрархічний контроль латентного простору |
| --- | --- | --- |
| Зафіксувати грубу структуру | Обмежено | Вбудоване блокування грубих кодів |
| Часткова регенерація | Ненадійні поверхневі обмеження | Масковане повторне вибіркування обраних кодів |
| Точки контролю з можливістю перевірки | Без явного проміжного шару | Грубі й точні дискретні позиції |
| Докази в цій статті | Не оцінено як повну базову лінію | Діагностика синтаксичної стабільності та свободи редагування |

Таблиця описує інтерфейси та виміряні в дослідженні свідчення; вона не засвідчує функціональної коректності чи універсальної переваги.

## Актуальність і межі застосування

## 

Стаття найрелевантніша для робіт, яким потрібен явний контроль над тим, що може змінювати перетворення коду за допомогою ШІ та які частини програми мають залишатися стабільними.

1. Керована генерація коду зі збереженням структури
2. Локалізоване виправлення програм і рефакторинг в окреслених межах
3. Ієрархічні дискретні представлення вихідного коду
4. Маскована дискретна генерація вихідного коду
5. Латентне керування програмними артефактами

## Обмеження

## 

- Дослідження обмежене короткими функціями Python, обрізаними до 64 токенів.
- В оцінюванні застосовано argmax-декодування та синтаксичні й структурні проксі-показники, а не перевірки функціональної еквівалентності.
- Точне збереження сигнатури досі забезпечується ненадійно.
- Керування на нижньому рівні слабше за керування на верхньому рівні.
- Латентні позиції поки що не узгоджені із семантичними ділянками, як-от фрагменти AST, сигнатури чи структура потоку керування.
- Результати не встановлюють правильності для практичного виправлення, рефакторингу чи змін на рівні репозиторію.

## Джерела, цитовані у статті

## 

Ці записи відповідають нумерованому розділу References у PDF-версії статті.

1. Ali Razavi, Aaron van den Oord, Oriol Vinyals. 2019 . [Generating Diverse High-Fidelity Images with VQ-VAE-2](https://arxiv.org/abs/1906.00446) . Advances in Neural Information Processing Systems .
2. Jacob Austin, Daniel D. Johnson, Jonathan Ho, Daniel Tarlow, Rianne van den Berg. 2021 . [Structured Denoising Diffusion Models in Discrete State-Spaces](https://arxiv.org/abs/2107.03006) . Advances in Neural Information Processing Systems .
3. Subham Sekhar Sahoo, Marianne Arriola, Yair Schiff, Aaron Gokaslan, Edgar Marroquin, Justin T Chiu, Alexander Rush, Volodymyr Kuleshov. 2024 . [Simple and Effective Masked Diffusion Language Models](https://arxiv.org/abs/2406.07524) . Advances in Neural Information Processing Systems .
4. Shraddha Barke, Michael B. James, Nadia Polikarpova. 2023 . [Grounded Copilot: How Programmers Interact with Code-Generating Models](https://doi.org/10.1145/3586030) . Proceedings of the ACM on Programming Languages .
5. Fengji Zhang, Bei Chen, Yue Zhang, Jacky Keung, Jin Liu, Daoguang Zan, Yi Mao, Jian-Guang Lou, Weizhu Chen. 2023 . [RepoCoder: Repository-Level Code Completion Through Iterative Retrieval and Generation](https://doi.org/10.18653/v1/2023.emnlp-main.151) . Proceedings of the 2023 Conference on Empirical Methods in Natural Language Processing .

## Ресурси та відтворюваність

## 

### Відомості про дані

## Версії

## 

1. **Опублікована версія** [ACM FSE Companion, 2026](https://doi.org/10.1145/3803437.3807386)
2. **Авторський рукопис** [Доступний як текст остаточний рукопис із фінальним переліком авторів і DOI](https://aogavrilov.com/publications/inspectable-control/paper.pdf)
3. **Зовнішнє дзеркало повного тексту** [Авторський рукопис за ліцензією CC BY 4.0 на Hugging Face](https://huggingface.co/datasets/aogavrilov/inspectable-control-results/resolve/main/paper.pdf)
4. **Відкрити запис у репозиторії** [Запис Zenodo, індексований OpenAIRE](https://zenodo.org/records/21605395)
5. **Відкрити повний текст у репозиторії** [Авторський рукопис у Zenodo за ліцензією CC BY 4.0; текстово еквівалентний локальному рукопису](https://zenodo.org/records/21605395/files/fse2026-posters-final11%20%284%29.pdf?download=1)
6. **Матеріали автора** [Постер і презентація](https://aogavrilov.com/publications/inspectable-control/media/)
7. **Бібліографічний запис** [DBLP](https://dblp.org/rec/conf/sigsoft/GavrilovGMMM26)
8. **Відкрити науковий запис** [OpenAlex](https://openalex.org/W7169573479)
9. **Запис у графі цитувань** [Semantic Scholar](https://www.semanticscholar.org/paper/93c3de037596ce177d9d882d214ccad5c5405b00)
10. **Повний текст, наданий автором** [ResearchGate](https://www.researchgate.net/publication/410435483_Inspectable_Control_for_Structure-Preserving_Software_Regeneration)
11. **Виклад доступною мовою** [Відзнаки](https://www.growkudos.com/publications/10.1145%252F3803437.3807386/reader)

Опублікований DOI є основним бібліографічним ідентифікатором. Ця сторінка залишається єдиною канонічною URL-адресою проєкту для всіх версій.

## Пов'язана публікація

- [Where Quality Breaks in Compressed Short-Text Generation: Staged Bottleneck Localization](https://aogavrilov.com/uk/publications/where-quality-breaks/)

Читати [Кероване редагування коду](https://aogavrilov.com/uk/projects/discrete-latent-generation/) дослідницькому путівнику. [Про автора](https://aogavrilov.com/about/) .

### Тематичні дослідницькі нотатки

Відповіді відповідно до наміру запиту, з окресленими межами доказовості та посиланнями на цю статтю.

- [Локалізована модифікація коду за допомогою генеративних моделей](https://aogavrilov.com/uk/research-notes/localized-code-modification-generative-models/)
- [Генерація коду з обмеженнями для програмної інженерії](https://aogavrilov.com/uk/research-notes/constrained-code-generation-software-engineering/)
- [Рефакторинг за допомогою ШІ: методи та докази](https://aogavrilov.com/uk/research-notes/ai-assisted-refactoring-evidence/)
- [Для передбачуваної генерації коду потрібен контракт збереження](https://aogavrilov.com/uk/research-notes/predictable-code-generation-preservation-contract/)
