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 секунди

Изследователски въпросКак генеративен модел може да променя избрани части от програма, като същевременно запазва определени елементи от грубата ѝ структура?

Проблем

Промяната на код с помощта на ИИ често изисква една ограничена намеса, при която избрани елементи от структурата на програмата остават фиксирани. Регенерирането на цялата програма може да засегне несвързани области, а ограниченията на равнище токени не осигуряват средство за по-общ структурен контрол.

Подход

Изследването кодира Python функции от 64 токена с йерархичен 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Пълен текст във формат JATS 1.4 XMLRDF TurtleНабор от връзки (JSON)Набор от връзки (HTTP)RO-Crate

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

Пълно ръководство

Пълно изследователско ръководство

Метод

Методът компресира кратка Python функция до две нива от дискретни кодове, фиксира избрани груби позиции и генерира наново останалите позиции, преди да ги декодира обратно до програмен код.

  1. Кодиране

    Компресирайте Python функция от 64 токена до 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 на проекта във всички версии.