Inspectable Control for Structure-Preserving Software Regeneration
Контроль із можливістю перевірки для регенерації програмного забезпечення зі збереженням структури
Керована часткова регенерація коду з використанням ієрархічних дискретних латентних представлень.
Читати повний текст статті у форматі HTMLТекст із можливістю пошуку, що містить формули, таблиці, рисунки та бібліографію.
Підготовлений автором до друку рукопис з остаточним списком авторів і DOI. CC BY 4.0 author manuscript; the ACM DOI page remains the version of record. Умови оприлюднення та повторного використання.
Стаття за 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 з основ програмної інженерії
Тип внеску Метод керування в латентному просторі
с. 1406–1407Супровідний постер
Ключові результати
| Налаштування | Частка успішного синтаксичного аналізу | Каркас | Підпис | Зміна в незаблокованій частині |
|---|---|---|---|---|
| Вхідні дані (скорочено) | 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 | не повідомлено |
Ключовий результат. Фіксація грубозернистих латентних кодів підвищує синтаксичну стабільність, не нівелюючи змін у редагованій ділянці; результат демонструє структурний контроль, але не гарантує функціональної еквівалентності.
- Набір даних
- 2,000 попередньо опрацьованих Python-функцій із підмножини CodeParrot Clean
- Розмір вибірки
- 2,000 попередньо опрацьованих Python-функцій; унікальність умовних зразків становить 0.998.
- Метрики
- Частка успішного синтаксичного аналізу; проксі-показники збереження каркаса та сигнатур; частка змін у незаблокованих позиціях; унікальність та ентропія зразків
- Невизначеність
- У двосторінковому дослідженні наведено точкові оцінки без довірчих інтервалів або статистичного аналізу за кількома початковими значеннями генератора випадкових чисел.
- Умови
- Функції завдовжки 64 токени, декодування за argmax, 16 кодів верхнього рівня та 32 коди нижнього рівня; повна фіксація точно відтворює реконструкцію кодеком.
Завантажити результати:CSVJSONMarkdownЗовнішнє дзеркало:Картка набору даних Hugging Face
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},
}
Gavrilov, A., Gazzaev, A.-B., Mozikov, M., Makarov, I., and Muravyov, S. (2026). Inspectable Control for Structure-Preserving Software Regeneration. In Proceedings of the 34th ACM International Conference on the Foundations of Software Engineering (pp. 1406–1407). ACM. https://doi.org/10.1145/3803437.3807386A. Gavrilov, A.-B. Gazzaev, M. Mozikov, I. Makarov, and S. Muravyov, “Inspectable Control for Structure-Preserving Software Regeneration,” in Proceedings of the 34th ACM International Conference on the Foundations of Software Engineering, 2026, pp. 1406–1407, doi: 10.1145/3803437.3807386.TY - CPAPER
TI - Inspectable Control for Structure-Preserving Software Regeneration
AU - Gavrilov, Alexey
AU - Gazzaev, Alan-Barsag
AU - Mozikov, Mikhail
AU - Makarov, Ilya
AU - Muravyov, Sergey
PY - 2026
DA - 2026-07-05
T2 - Proceedings of the 34th ACM International Conference on the Foundations of Software Engineering
SP - 1406
EP - 1407
PB - ACM
DO - 10.1145/3803437.3807386
UR - https://doi.org/10.1145/3803437.3807386
SN - 979-8-4007-2636-1
ER -
Файли цитування:Текст у форматі APAТекст у форматі IEEERISCSL-JSONSchema.org JSON-LDOAI-DC XMLOpenAIRE v4 XMLMODS XMLXML метаданих JATS 1.4Повнотекстовий XML у форматі JATS 1.4RDF TurtleНабір посилань (JSON)Набір посилань (HTTP)RO-Crate
Повні настанови
Повні дослідницькі настанови
Метод
Метод стискає коротку функцію Python у два рівні дискретних кодів, фіксує вибрані грубі позиції та повторно генерує решту позицій, перш ніж декодувати їх назад у код.
Закодувати
Стисніть 64-токенну функцію Python до 16 кодів верхнього рівня та 32 кодів нижнього рівня за допомогою ієрархічної VQ-VAE.
Зафіксувати
Оберіть грубі позиції кодів, що представляють структуру, яку слід зберегти, наприклад префікс, який охоплює діапазон сигнатури функції.
Перегенерувати
Виконуйте масковану дискретну генерацію лише для розблокованих позицій, а завершену ієрархію декодуйте назад у вихідний код.
Перевірити
Перш ніж приймати результат регенерації, оцініть частку успішного синтаксичного аналізу, структурні проксі-показники, зміни в незаблокованих позиціях та унікальність зразків.
Ключова ідея
Керування застосовується до вивченого представлення над рівнем токенів: грубі латентні позиції явно визначають місця, де структуру можна зафіксувати, залишивши сусідні деталі реалізації доступними для редагування.
Відмінність від споріднених підходів
Обмеження на рівні запиту або токенів діють на поверхневий текст. Запропонований інтерфейс надає дискретні точки грубого й точного контролю та вимірює відповідний компроміс між стабільністю і свободою.
Що нового
У роботі запропоновано й оцінено ієрархічний рівень латентного контролю з можливістю перевірки для регенерації програмних артефактів в окреслених межах.
Питання, на які допомагає відповісти ця стаття
Відкрийте запитання, щоб отримати стислу відповідь, що ґрунтується на статті. Докладні межі доказовості наведено в розділі «Обмеження».
Як ШІ може редагувати код, не переписуючи все цілком?
У статті досліджено часткову регенерацію коду на рівні вище за токени. Ієрархічна VQ-VAE відображає коротку функцію Python у грубозернисті й дрібнозернисті дискретні коди; вибрані грубозернисті позиції фіксують, а маскована дискретна генерація перед декодуванням змінює лише решту латентних позицій. Так задається явна межа збереження замість регенерації всієї функції.
Які методи забезпечують збереження структури програми під час генерації коду?
У цій роботі випробувано ієрархічний дискретний латентний контроль. Грубі латентні позиції можна зафіксувати, а незаблоковані — регенерувати, після чого виміряти частку успішного синтаксичного розбору та структурні проксі-показники. Отримані свідчення стосуються ймовірнісної структурної стабільності коротких функцій Python; вони не встановлюють точного збереження AST, семантичної еквівалентності чи функціональної коректності.
Чи можуть ієрархічні дискретні латентні представлення забезпечити локалізований контроль над кодом?
В описаному експерименті на 2,000 функціях фіксація чотирьох кодів верхнього рівня підвищила частку успішного синтаксичного аналізу з 0.453 до 0.591. Водночас змінилися 0.936 незаблокованих позицій, а частка унікальних умовних зразків становила 0.998. Ці результати є попереднім свідченням того, що грубі латентні обмеження можуть зберігати частину структури, не усуваючи свободи локального редагування чи різноманітності зразків.
Як у генерації коду збалансувати стабільність структури та різноманітність?
У статті стабільність і свободу оцінюють разом, а не оптимізують лише валідність. Фіксація грубих кодів підвищує синтаксичну валідність, тоді як зміни в незаблокованих позиціях залишаються значними, а умовні зразки — майже цілком унікальними. Результат демонструє вимірюваний компроміс між стабільністю та свободою в дослідженій конфігурації, а не універсальний оптимум.
Як ця робота пов’язана з редагуванням коду за допомогою LLM?
Випробувана модель — ієрархічна VQ-VAE з маскованою дискретною генерацією, а не велика мовна модель. Проте проблема керування актуальна й для редагування за допомогою LLM, адже непотрібні зміни поза запитаною ділянкою становлять практичну проблему. Внесок статті — додатковий механізм у латентному просторі та підхід до оцінювання, а не бенчмарк редагування за допомогою LLM.
Порівняння зі спорідненими підходами
| Можливість | Контроль на рівні токенів | Ієрархічний контроль латентного простору |
|---|---|---|
| Зафіксувати грубу структуру | Обмежено | Вбудоване блокування грубих кодів |
| Часткова регенерація | Ненадійні поверхневі обмеження | Масковане повторне вибіркування обраних кодів |
| Точки контролю з можливістю перевірки | Без явного проміжного шару | Грубі й точні дискретні позиції |
| Докази в цій статті | Не оцінено як повну базову лінію | Діагностика синтаксичної стабільності та свободи редагування |
Таблиця описує інтерфейси та виміряні в дослідженні свідчення; вона не засвідчує функціональної коректності чи універсальної переваги.
Актуальність і межі застосування
Стаття найрелевантніша для робіт, яким потрібен явний контроль над тим, що може змінювати перетворення коду за допомогою ШІ та які частини програми мають залишатися стабільними.
Керована генерація коду зі збереженням структури
Локалізоване виправлення програм і рефакторинг в окреслених межах
Ієрархічні дискретні представлення вихідного коду
Маскована дискретна генерація вихідного коду
Латентне керування програмними артефактами
Обмеження
- Дослідження обмежене короткими функціями Python, обрізаними до 64 токенів.
- В оцінюванні застосовано argmax-декодування та синтаксичні й структурні проксі-показники, а не перевірки функціональної еквівалентності.
- Точне збереження сигнатури досі забезпечується ненадійно.
- Керування на нижньому рівні слабше за керування на верхньому рівні.
- Латентні позиції поки що не узгоджені із семантичними ділянками, як-от фрагменти AST, сигнатури чи структура потоку керування.
- Результати не встановлюють правильності для практичного виправлення, рефакторингу чи змін на рівні репозиторію.
Джерела, цитовані у статті
Ці записи відповідають нумерованому розділу References у PDF-версії статті.
- Ali Razavi, Aaron van den Oord, Oriol Vinyals. . Generating Diverse High-Fidelity Images with VQ-VAE-2. Advances in Neural Information Processing Systems.
- Jacob Austin, Daniel D. Johnson, Jonathan Ho, Daniel Tarlow, Rianne van den Berg. . Structured Denoising Diffusion Models in Discrete State-Spaces. Advances in Neural Information Processing Systems.
- Subham Sekhar Sahoo, Marianne Arriola, Yair Schiff, Aaron Gokaslan, Edgar Marroquin, Justin T Chiu, Alexander Rush, Volodymyr Kuleshov. . Simple and Effective Masked Diffusion Language Models. Advances in Neural Information Processing Systems.
- Shraddha Barke, Michael B. James, Nadia Polikarpova. . Grounded Copilot: How Programmers Interact with Code-Generating Models. Proceedings of the ACM on Programming Languages.
- Fengji Zhang, Bei Chen, Yue Zhang, Jacky Keung, Jin Liu, Daoguang Zan, Yi Mao, Jian-Guang Lou, Weizhu Chen. . RepoCoder: Repository-Level Code Completion Through Iterative Retrieval and Generation. Proceedings of the 2023 Conference on Empirical Methods in Natural Language Processing.
Ресурси та відтворюваність
- Видавець
- ACM
- Локальний PDF із текстом
- Підготовлений автором до друку рукопис з остаточним списком авторів і DOI
- Ресурси публікації
- Тут доступні відкритий рукопис, таблиці результатів, пояснювальний рисунок і файли цитування. Код реалізації та контрольні точки публічно не оприлюднено.
Відомості про дані
- Джерело
- Попередньо опрацьована підмножина CodeParrot Clean, що містить 2,000 Python-функцій.
- Ліцензія
- Цей сайт не розповсюджує файли набору даних; повторне використання й надалі регулюється умовами вихідного набору даних CodeParrot і ліцензіями на вихідний код.
- Попереднє оброблення
- Перед ієрархічним кодуванням функції Python токенізують, а їхні послідовності скорочують або доповнюють до 64 токенів.
- Розділити
- Постер повідомляє про оцінювальний набір із 2 000 функцій; незмінний маніфест поділу на навчальну й валідаційну вибірки у відкритій статті відсутній.
- Формат
- Функції у вихідному коді Python, послідовності токенів у стилі GPT, послідовності коду верхнього рівня завдовжки 16 і нижнього рівня завдовжки 32.
- Версія / контрольна сума
- У двосторінковій статті не наведено контрольної суми набору даних та незмінного ідентифікатора знімка.
- Отримання даних
- Разом зі сторінкою публікації не оприлюднено сценарію для отримання даних.
- Межі застосування
- Вибірка не репрезентує програмне забезпечення в масштабі репозиторію, кілька мов програмування чи завдання виправлення з перевіркою поведінки.
Версії
- Опублікована версіяACM FSE Companion, 2026
- Зовнішнє дзеркало повного текстуАвторський рукопис за ліцензією CC BY 4.0 на Hugging Face
- Відкрити запис у репозиторіїЗапис Zenodo, індексований OpenAIRE
- Відкрити повний текст у репозиторіїАвторський рукопис у Zenodo за ліцензією CC BY 4.0; текстово еквівалентний локальному рукопису
- Матеріали автораПостер і презентація
- Бібліографічний записDBLP
- Відкрити науковий записOpenAlex
- Запис у графі цитуваньSemantic Scholar
- Повний текст, наданий авторомResearchGate
- Виклад доступною мовоюВідзнаки
Опублікований DOI є основним бібліографічним ідентифікатором. Ця сторінка залишається єдиною канонічною URL-адресою проєкту для всіх версій.