Inspectable Control for Structure-Preserving Software Regeneration

Inspecteerbare sturing voor regeneratie van software met structuurbehoud

Stuurbare gedeeltelijke coderegeneratie met hiërarchische discrete latente representaties.

Alexey Gavrilov1Alan-Barsag Gazzaev1Mikhail Mozikov2Ilya Makarov2Sergey Muravyov1

  1. ITMO University, Sint-Petersburg, Russische Federatie
  2. AXXX, Moskou, Russische Federatie

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

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

Dit artikel delenDelen

Kernresultaten

Kernresultaten van Inspecteerbare controle voor software-regeneratie met structuurbehoud
InstellingParsepercentageSkeletHandtekeningOntgrendelde wijziging
Invoer (afgekapt)0.9940.9940.994
Codecreconstructie0.8570.8480.4930
Onvoorwaardelijke generatie0.4530.0800.995
Conditioneel, prefix k=40.5910.2950.0610.936
Conditioneel, bereik van de signatuur0.60.3020.063niet 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.

PDF en citatie

Dit artikel citeren BibTeX is het aanbevolen formaat. Elke onderstaande variant wordt uit hetzelfde publicatierecord gegenereerd.

PDF openen
@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 downloaden

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

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

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.

  1. 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.

  2. Vergrendelen

    Kies grove codeposities die de te behouden structuur representeren, zoals een prefix die het bereik van de functiesignatuur omvat.

  3. Opnieuw genereren

    Voer gemaskeerde discrete generatie uitsluitend uit over ontgrendelde posities en decodeer de voltooide hiërarchie terug naar broncode.

  4. Inspecteren

    Meet vóór aanvaarding van een regeneratie het parsepercentage, structurele proxymaatstaven, wijzigingen op ontgrendelde posities en de uniciteit van steekproeven.

Geselecteerde grove programmacodes blijven vaststaan, terwijl gemaskeerde fijne discrete codes opnieuw worden gegenereerd en tot een gewijzigde Python-functie worden gedecodeerd.
Bij hiërarchische bewerking van discrete latente code blijft de geselecteerde grofmazige programmastructuur behouden, terwijl fijnmazige codes in het bewerkbare gebied worden geregenereerd.Bron: Door de auteur gemaakt verklarend diagram op basis van de gepubliceerde methode en resultaten..Hergebruiksvoorwaarden: CC BY 4.0.Aanbevolen bronvermelding: Gavrilov et al. (2026), Inspectable Control for Structure-Preserving Software Regeneration. SVG downloaden.

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.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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

Feitelijke vergelijking van Inspecteerbare controle voor software-regeneratie met structuurbehoud met verwante benaderingen
MogelijkheidSturing op tokenniveauHiërarchische latente sturing
Grove structuur vastzettenBeperktIngebouwde vergrendeling van grove codes
Gedeeltelijke regeneratieKwetsbare beperkingen op oppervlakteniveauGemaskeerde herbemonstering van geselecteerde codes
Inspecteerbare controlepuntenGeen expliciete tussenlaagGrove en fijne discrete posities
Bewijs in deze publicatieNiet als volledige baseline geëvalueerdDiagnostiek 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.

  1. Controleerbare codegeneratie met structuurbehoud

  2. Lokale programmacorrectie en begrensde refactoring

  3. Hiërarchische discrete representaties voor broncode

  4. Gemaskeerde discrete generatie van broncode

  5. Latente controle voor softwareartefacten

Bekijk de beperkingen en grenzen van het bewijs

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.

  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.

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

  1. Gepubliceerde versieACM FSE Companion, 2026
  2. Externe mirror van de volledige tekstAuteursmanuscript onder CC BY 4.0 op Hugging Face
  3. Bronnen van de auteurPoster en diapresentatie
  4. Bibliografisch recordDBLP
  5. Wetenschappelijk record openenOpenAlex
  6. Record in de citatiegraafSemantic Scholar
  7. Door de auteur gedeelde volledige tekstResearchGate
  8. Samenvatting in toegankelijke taalKudos

De gepubliceerde DOI is de primaire bibliografische identificatie. Deze pagina blijft in alle versies de enige canonieke project-URL.