Inspectable Control for Structure-Preserving Software Regeneration
Inspecteerbare sturing voor regeneratie van software met structuurbehoud
Stuurbare gedeeltelijke coderegeneratie met hiërarchische discrete latente representaties.
Het volledige artikel in HTML lezenDoorzoekbare tekst met formules, tabellen, figuren en referenties.
Publicatieklare auteursversie met de definitieve auteurslijst en DOI. CC BY 4.0 author manuscript; the ACM DOI page remains the version of record. Voorwaarden voor publicatie en hergebruik.
Artikel in 30 seconden
OnderzoeksvraagHoe kan een generatief model geselecteerde delen van een programma wijzigen met behoud van gekozen elementen van de grove structuur?
Probleem
Bij AI-ondersteunde codewijziging is vaak één afgebakende verandering nodig, terwijl geselecteerde onderdelen van de programmastructuur vast blijven. Regeneratie van het volledige programma kan niet-gerelateerde gebieden verstoren, en beperkingen op tokenniveau bieden geen grofmazige sturingsinterface.
Aanpak
In de studie worden Python-functies van 64 tokens met een hiërarchische VQ-VAE gecodeerd. Geselecteerde grofmazige discrete codes worden vastgezet, waarna gemaskeerde discrete generatie de code lokaal regenereert op de overige latente posities.
Hoofdresultaat
Het vastzetten van vier codes op het hoogste niveau verhoogt het parsepercentage van 0.453 naar 0.591, terwijl het veranderingspercentage voor niet-vastgezette posities 0.936 blijft en de uniciteit van conditionele steekproeven 0.998 bedraagt.
Waarom dit van belang is
De resultaten tonen een meetbare afweging tussen stabiliteit en bewerkingsvrijheid bij stuurbare codebewerking en gedeeltelijke regeneratie van programma's. Zij bieden eerste aanwijzingen voor een inspecteerbare sturingslaag in de latente ruimte, maar bewijzen geen semantische equivalentie of functionele correctheid.
Samenvatting
Processen voor software-engineering, zoals herstel onder beperkingen, stapsgewijze verfijning en structuurbehoudende wijziging, vereisen sturing van wat verandert en wat vast blijft. Generatie op tokenniveau is hiervoor een zwakke sturingsinterface, omdat zij lokale oppervlaktetekst beperkt in plaats van de grofmazige structurele invarianten te beschermen die men bij software-engineering vaak wil behouden. Wij onderzoeken hiërarchische discrete latente variabelen als inspecteerbare tussenrepresentatie van softwareartefacten: een hiërarchische VQ-VAE comprimeert een Python-functie van 64 tokens tot grof- en fijnmazige discrete codes, waarna gemaskeerde discrete generatie onder gedeeltelijke beperkingen uitsluitend geselecteerde posities regenereert. Bij 2.000 voorbewerkte Python-functies verhoogt het vastzetten van vier codes op het hoogste niveau het parsepercentage van 0.453 naar 0.591, terwijl niet-vastgezette posities aanzienlijk blijven veranderen (bewerkingsvrijheid, 0.936) en de uniciteit van steekproeven vrijwel maximaal blijft (diversiteit, 0.998). Wanneer de grofmazige context is vastgezet, is de verfijning op het lagere niveau zwakker maar nog steeds monotoon; dit ondersteunt een interpretatie van de hiërarchie van grof naar fijn. Gezamenlijk bieden deze resultaten eerste aanwijzingen voor een praktische sturingslaag die afgebakende, structuurbehoudende regeneratie van softwareartefacten boven het tokenniveau mogelijk maakt.
Gepubliceerd bij Proceedings of the 34th ACM International Conference on the Foundations of Software Engineering
Type bijdrage Sturingsmethode in de latente ruimte
pp. 1406–1407Bijbehorende poster
Kernresultaten
| Instelling | Parsepercentage | Skelet | Handtekening | Ontgrendelde wijziging |
|---|---|---|---|---|
| Invoer (afgekapt) | 0.994 | 0.994 | 0.994 | — |
| Codecreconstructie | 0.857 | 0.848 | 0.493 | 0 |
| Onvoorwaardelijke generatie | 0.453 | 0.08 | 0 | 0.995 |
| Conditioneel, prefix k=4 | 0.591 | 0.295 | 0.061 | 0.936 |
| Conditioneel, bereik van de signatuur | 0.6 | 0.302 | 0.063 | niet gerapporteerd |
Kernresultaat. Het vastzetten van grofmazige latente variabelen verbetert de syntactische stabiliteit zonder veranderingen in het bewerkbare gebied te onderdrukken; het resultaat toont structurele sturing aan, maar garandeert geen functionele equivalentie.
- Dataset
- 2.000 voorbewerkte Python-functies uit een deelverzameling van CodeParrot Clean
- Steekproefomvang
- 2.000 voorbewerkte Python-functies; de uniciteit van conditionele steekproeven bedraagt 0,998.
- Metrieken
- Parsepercentage; proxymaatstaven voor behoud van skelet en signatuur; wijzigingspercentage op ontgrendelde posities; uniciteit en entropie van steekproeven
- Onzekerheid
- De twee pagina's tellende studie rapporteert puntschattingen zonder betrouwbaarheidsintervallen of statistische analyse met meerdere seeds.
- Voorwaarden
- Functies van 64 tokens, argmax-decodering, 16 codes op het hoogste en 32 codes op het lagere niveau; bij volledig vastzetten wordt de codecreconstructie exact teruggewonnen.
Resultaten downloaden:CSVJSONMarkdownExterne mirror:Hugging Face-datasetkaart
PDF en citatie
Dit artikel citeren BibTeX is het aanbevolen formaat. Elke onderstaande variant wordt uit hetzelfde publicatierecord gegenereerd.
@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 -
Citatiebestanden:APA-tekstIEEE-tekstRISCSL-JSONSchema.org JSON-LDOAI-DC XMLOpenAIRE v4 XMLMODS XMLJATS 1.4-metadata-XMLJATS 1.4 XML met volledige tekstRDF TurtleLinkset (JSON)Linkset (HTTP)RO-Crate
Volledige gids
Volledige onderzoeksgids
Methode
De methode comprimeert een korte Python-functie tot twee niveaus van discrete codes, zet geselecteerde grove posities vast en regenereert de overige posities voordat deze weer tot code worden gedecodeerd.
Coderen
Comprimeer een Python-functie van 64 tokens met een hiërarchische VQ-VAE tot 16 codes op het hoogste niveau en 32 codes op het lagere niveau.
Vergrendelen
Kies grove codeposities die de te behouden structuur representeren, zoals een prefix die het bereik van de functiesignatuur omvat.
Opnieuw genereren
Voer gemaskeerde discrete generatie uitsluitend uit over ontgrendelde posities en decodeer de voltooide hiërarchie terug naar broncode.
Inspecteren
Meet vóór aanvaarding van een regeneratie het parsepercentage, structurele proxymaatstaven, wijzigingen op ontgrendelde posities en de uniciteit van steekproeven.
Kernidee
De controle wordt toegepast op een aangeleerde representatie boven het tokenniveau: grove latente posities leggen expliciete plaatsen vast waar de structuur kan worden bevroren, terwijl nabijgelegen implementatiedetails bewerkbaar blijven.
Verschil met verwante benaderingen
Beperkingen op prompt- of tokenniveau werken op de oppervlaktetekst. De voorgestelde interface biedt grove en fijne discrete controlepunten en meet de daaruit voortvloeiende afweging tussen stabiliteit en vrijheid.
Wat is nieuw
Dit werk introduceert en evalueert een inspecteerbare hiërarchische laag voor latente sturing van begrensde regeneratie van softwareartefacten.
Vragen die dit artikel mede beantwoordt
Open een vraag voor een beknopt, op het artikel gebaseerd antwoord. Gedetailleerde bewijsgrenzen staan onder Beperkingen.
Hoe kan AI code bewerken zonder alles te herschrijven?
Het artikel onderzoekt gedeeltelijke coderegeneratie boven het tokenniveau. Een hiërarchische VQ-VAE brengt een korte Python-functie over op grove en fijne discrete codes; geselecteerde grove posities worden vastgezet en gemaskeerde discrete generatie wijzigt vóór decodering uitsluitend de resterende latente posities. Dit biedt een expliciete behoudsgrens in plaats van de gehele functie te regenereren.
Welke methoden behouden de programmastructuur tijdens codegeneratie?
Dit werk toetst hiërarchische discrete latente sturing. Grove latente posities kunnen worden vastgezet terwijl ontgrendelde posities opnieuw worden gegenereerd; vervolgens worden het parsepercentage en structurele proxy's gemeten. Het bewijs betreft probabilistische structurele stabiliteit bij korte Python-functies en toont geen exact AST-behoud, semantische equivalentie of functionele correctheid aan.
Kunnen hiërarchische discrete latente variabelen lokale controle over code bieden?
In het gerapporteerde experiment met 2.000 functies verhoogde het vergrendelen van vier codes op het hoogste niveau het parsepercentage van 0.453 naar 0.591. Tegelijkertijd veranderde 0.936 van de onvergrendelde posities en waren de conditionele steekproeven voor 0.998 uniek. Deze resultaten vormen een eerste aanwijzing dat grove latente beperkingen enige structuur kunnen behouden zonder de lokale bewerkingsvrijheid of diversiteit van steekproeven teniet te doen.
Hoe kan codegeneratie structurele stabiliteit en diversiteit met elkaar in evenwicht brengen?
Het artikel evalueert stabiliteit en vrijheid gezamenlijk in plaats van uitsluitend geldigheid te optimaliseren. Het vastzetten van grove codes verhoogt de syntactische geldigheid, terwijl de verandering op ontgrendelde posities groot blijft en conditionele steekproeven vrijwel geheel uniek blijven. Het resultaat toont binnen de geteste configuratie een meetbare afweging tussen stabiliteit en vrijheid, geen universeel optimum.
Hoe verhoudt dit werk zich tot LLM-ondersteunde codebewerking?
Het geteste model is een hiërarchische VQ-VAE met gemaskeerde discrete generatie, geen groot taalmodel. Het sturingsprobleem is niettemin relevant voor LLM-ondersteunde bewerking, omdat onnodige wijzigingen buiten het gevraagde gebied in de praktijk een belangrijk aandachtspunt zijn. Het artikel draagt een aanvullend mechanisme in de latente ruimte en een evaluatiekader bij, geen benchmark voor bewerking met LLM's.
Vergelijking met verwante benaderingen
| Mogelijkheid | Sturing op tokenniveau | Hiërarchische latente sturing |
|---|---|---|
| Grove structuur vastzetten | Beperkt | Ingebouwde vergrendeling van grove codes |
| Gedeeltelijke regeneratie | Kwetsbare beperkingen op oppervlakteniveau | Gemaskeerde herbemonstering van geselecteerde codes |
| Inspecteerbare controlepunten | Geen expliciete tussenlaag | Grove en fijne discrete posities |
| Bewijs in deze publicatie | Niet als volledige baseline geëvalueerd | Diagnostiek van syntactische stabiliteit en bewerkingsvrijheid |
De tabel beschrijft interfaces en het in de studie gemeten bewijs; zij maakt geen aanspraak op functionele correctheid of universele superioriteit.
Relevantie en reikwijdte
Het artikel is vooral relevant voor onderzoek dat expliciete controle vereist over wat een AI-ondersteunde codetransformatie mag wijzigen en welke delen van een programma stabiel moeten blijven.
Controleerbare codegeneratie met structuurbehoud
Lokale programmacorrectie en begrensde refactoring
Hiërarchische discrete representaties voor broncode
Gemaskeerde discrete generatie van broncode
Latente controle voor softwareartefacten
Beperkingen
- De studie is beperkt tot korte Python-functies die tot 64 tokens zijn afgekapt.
- De evaluatie gebruikt argmax-decodering en syntactische of structurele proxy's in plaats van toetsen op functionele equivalentie.
- Het exacte behoud van functiesignaturen blijft beperkt.
- Controle op een lager niveau is zwakker dan controle op het hoogste niveau.
- Latente posities zijn nog niet gekoppeld aan semantische gebieden zoals AST-bereiken, signaturen of besturingsstroomstructuren.
- De resultaten tonen geen correctheid aan voor praktisch herstel, refactoring of wijzigingen op repositoryniveau.
In het artikel aangehaalde referenties
Deze vermeldingen corresponderen met de genummerde sectie References in de pdf van het artikel.
- 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.
Bronnen en reproduceerbaarheid
- Uitgever
- ACM
- Publicatiebronnen
- Het openbare manuscript, de resultaattabellen, de toelichtende figuur en de citatiebestanden zijn hier beschikbaar. Implementatiecode en checkpoints zijn niet openbaar vrijgegeven.
Dataverklaring
- Bron
- Een voorbewerkte deelverzameling van CodeParrot Clean met 2.000 Python-functies.
- Licentie
- Deze site verspreidt geen datasetbestanden opnieuw; voor hergebruik blijven de licenties van de oorspronkelijke CodeParrot-dataset en broncode gelden.
- Voorbewerking
- Python-functies worden getokeniseerd en vóór de hiërarchische codering afgekapt of aangevuld tot 64 tokens.
- Opsplitsen
- De poster rapporteert een evaluatieset van 2.000 functies; het openbare artikel bevat geen onveranderlijk manifest van de opsplitsing in trainings- en validatiedata.
- Formaat
- Python-bronfuncties, tokenreeksen in GPT-stijl, codereeksen op het hoogste niveau met lengte 16 en reeksen op het lagere niveau met lengte 32.
- Versie / controlesom
- In het twee pagina's tellende artikel worden geen controlesom van de dataset en geen onveranderlijke snapshot-ID gerapporteerd.
- Verwerving
- Bij de publicatiepagina is geen openbaar acquisitiescript uitgebracht.
- Gebruiksbeperkingen
- De steekproef is niet representatief voor software op repositoryschaal, meerdere programmeertalen of gedragmatig geverifieerde hersteltaken.
Versies
- Gepubliceerde versieACM FSE Companion, 2026
- Externe mirror van de volledige tekstAuteursmanuscript onder CC BY 4.0 op Hugging Face
- Repositoryrecord openenZenodo-record geïndexeerd door OpenAIRE
- Volledige tekst in repository openenAuteursmanuscript op Zenodo onder CC BY 4.0; tekstueel gelijkwaardig aan het lokale manuscript
- Bronnen van de auteurPoster en diapresentatie
- Bibliografisch recordDBLP
- Wetenschappelijk record openenOpenAlex
- Record in de citatiegraafSemantic Scholar
- Door de auteur gedeelde volledige tekstResearchGate
- Samenvatting in toegankelijke taalKudos
De gepubliceerde DOI is de primaire bibliografische identificatie. Deze pagina blijft in alle versies de enige canonieke project-URL.