Inspectable Control for Structure-Preserving Software Regeneration

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

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

Alexey Gavrilov1Alan-Barsag Gazzaev1Mikhail Mozikov2Ilya Makarov2Sergey Muravyov1

  1. ITMO University, Saint Petersburg, Russian Federation
  2. AXXX, Москва, Російська Федерація

Читати повний текст статті у форматі 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Супровідний постер

DOI https://doi.org/10.1145/3803437.3807386

Поділитися цією статтеюПоділитися

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

Ключові результати контролю з можливістю перевірки для регенерації програмного забезпечення зі збереженням структури
НалаштуванняЧастка успішного синтаксичного аналізуКаркасПідписЗміна в незаблокованій частині
Вхідні дані (скорочено)0.9940.9940.994
Реконструкція кодека0.8570.8480.4930
Безумовна генерація0.4530.0800.995
Умовний режим, префікс k=40.5910.2950.0610.936
Умовний режим, діапазон сигнатури0.60.3020.063не повідомлено

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

Набір даних
2,000 попередньо опрацьованих Python-функцій із підмножини CodeParrot Clean
Розмір вибірки
2,000 попередньо опрацьованих Python-функцій; унікальність умовних зразків становить 0.998.
Метрики
Частка успішного синтаксичного аналізу; проксі-показники збереження каркаса та сигнатур; частка змін у незаблокованих позиціях; унікальність та ентропія зразків
Невизначеність
У двосторінковому дослідженні наведено точкові оцінки без довірчих інтервалів або статистичного аналізу за кількома початковими значеннями генератора випадкових чисел.
Умови
Функції завдовжки 64 токени, декодування за argmax, 16 кодів верхнього рівня та 32 коди нижнього рівня; повна фіксація точно відтворює реконструкцію кодеком.

PDF і цитування

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

Відкрити PDF
@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},
}
Завантажити .bib

Файли цитування:Текст у форматі APAТекст у форматі IEEERISCSL-JSONSchema.org JSON-LDOAI-DC XMLOpenAIRE v4 XMLMODS XMLXML метаданих JATS 1.4Повнотекстовий XML у форматі JATS 1.4RDF TurtleНабір посилань (JSON)Набір посилань (HTTP)RO-Crate

DOI:https://doi.org/10.1145/3803437.3807386

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

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

Метод

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

  1. Закодувати

    Стисніть 64-токенну функцію Python до 16 кодів верхнього рівня та 32 кодів нижнього рівня за допомогою ієрархічної VQ-VAE.

  2. Зафіксувати

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

  3. Перегенерувати

    Виконуйте масковану дискретну генерацію лише для розблокованих позицій, а завершену ієрархію декодуйте назад у вихідний код.

  4. Перевірити

    Перш ніж приймати результат регенерації, оцініть частку успішного синтаксичного аналізу, структурні проксі-показники, зміни в незаблокованих позиціях та унікальність зразків.

Вибрані грубі коди програми залишаються фіксованими, тоді як масковані точні дискретні коди генеруються повторно й декодуються у змінену функцію Python.
Ієрархічне редагування дискретних латентних кодів зберігає вибрану грубозернисту структуру програми й водночас регенерує дрібнозернисті коди в редагованій ділянці.Джерело: Створена автором пояснювальна схема на основі опублікованих методу та результатів..Умови повторного використання: CC BY 4.0.Рекомендоване посилання: Gavrilov et al. (2026), Inspectable Control for Structure-Preserving Software Regeneration. Завантажити 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. . Generating Diverse High-Fidelity Images with VQ-VAE-2. Advances in Neural Information Processing Systems.
  2. 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.
  3. 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.
  4. Shraddha Barke, Michael B. James, Nadia Polikarpova. . Grounded Copilot: How Programmers Interact with Code-Generating Models. 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. . RepoCoder: Repository-Level Code Completion Through Iterative Retrieval and Generation. Proceedings of the 2023 Conference on Empirical Methods in Natural Language Processing.

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

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

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

Джерело
Попередньо опрацьована підмножина CodeParrot Clean, що містить 2,000 Python-функцій.
Ліцензія
Цей сайт не розповсюджує файли набору даних; повторне використання й надалі регулюється умовами вихідного набору даних CodeParrot і ліцензіями на вихідний код.
Попереднє оброблення
Перед ієрархічним кодуванням функції Python токенізують, а їхні послідовності скорочують або доповнюють до 64 токенів.
Розділити
Постер повідомляє про оцінювальний набір із 2 000 функцій; незмінний маніфест поділу на навчальну й валідаційну вибірки у відкритій статті відсутній.
Формат
Функції у вихідному коді Python, послідовності токенів у стилі GPT, послідовності коду верхнього рівня завдовжки 16 і нижнього рівня завдовжки 32.
Версія / контрольна сума
У двосторінковій статті не наведено контрольної суми набору даних та незмінного ідентифікатора знімка.
Отримання даних
Разом зі сторінкою публікації не оприлюднено сценарію для отримання даних.
Межі застосування
Вибірка не репрезентує програмне забезпечення в масштабі репозиторію, кілька мов програмування чи завдання виправлення з перевіркою поведінки.

Версії

  1. Опублікована версіяACM FSE Companion, 2026
  2. Зовнішнє дзеркало повного текстуАвторський рукопис за ліцензією CC BY 4.0 на Hugging Face
  3. Відкрити запис у репозиторіїЗапис Zenodo, індексований OpenAIRE
  4. Матеріали автораПостер і презентація
  5. Бібліографічний записDBLP
  6. Відкрити науковий записOpenAlex
  7. Запис у графі цитуваньSemantic Scholar
  8. Повний текст, наданий авторомResearchGate
  9. Виклад доступною мовоюВідзнаки

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