# Inspectable Control for Structure-Preserving Software Regeneration

Canonical HTML: https://aogavrilov.com/nl/publications/inspectable-control/

Document language: nl

Inspecteerbare sturing voor regeneratie van software met structuurbehoud

Stuurbare gedeeltelijke coderegeneratie met hiërarchische discrete latente representaties.

[Alexey Gavrilov](https://orcid.org/0009-0006-3147-5430) 1 [Alan-Barsag Gazzaev](https://orcid.org/0009-0000-0334-312X) 1 [Mikhail Mozikov](https://orcid.org/0000-0003-0594-867X) 2 [Ilya Makarov](https://orcid.org/0000-0002-3308-8825) 2 [Sergey Muravyov](https://orcid.org/0000-0002-4251-1744) 1

1. [ITMO University, Sint-Petersburg, Russische Federatie](https://en.itmo.ru/)
2. [AXXX, Moskou, Russische Federatie](https://axxx.tech/)

[Het volledige artikel in HTML lezen](https://aogavrilov.com/publications/inspectable-control/full-text/) Doorzoekbare 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](https://creativecommons.org/licenses/by/4.0/) .

## Artikel in 30 seconden

**Onderzoeksvraag** Hoe 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

5 juli 2026 pp. 1406–1407 Bijbehorende poster

DOI [https://doi.org/10.1145/3803437.3807386](https://doi.org/10.1145/3803437.3807386)

## Inhoud Op deze pagina

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

Resultaten downloaden: [CSV](https://aogavrilov.com/publications/inspectable-control/results.csv) [JSON](https://aogavrilov.com/publications/inspectable-control/results.json) [Markdown](https://aogavrilov.com/publications/inspectable-control/results.md) Externe mirror: [Hugging Face-datasetkaart](https://huggingface.co/datasets/aogavrilov/inspectable-control-results)

## 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},
}
```

Citatiebestanden: [APA-tekst](https://aogavrilov.com/publications/inspectable-control/citation-apa.txt) [IEEE-tekst](https://aogavrilov.com/publications/inspectable-control/citation-ieee.txt) [RIS](https://aogavrilov.com/publications/inspectable-control/citation.ris) [CSL-JSON](https://aogavrilov.com/publications/inspectable-control/citation.json) [Schema.org JSON-LD](https://aogavrilov.com/publications/inspectable-control/metadata.jsonld) [OAI-DC XML](https://aogavrilov.com/publications/inspectable-control/oai-dc.xml) [OpenAIRE v4 XML](https://aogavrilov.com/publications/inspectable-control/openaire.xml) [MODS XML](https://aogavrilov.com/publications/inspectable-control/mods.xml) [JATS 1.4-metadata-XML](https://aogavrilov.com/publications/inspectable-control/metadata.jats.xml) [JATS 1.4 XML met volledige tekst](https://aogavrilov.com/publications/inspectable-control/full-text/article.jats.xml) [RDF Turtle](https://aogavrilov.com/publications/inspectable-control/metadata.ttl) [Linkset (JSON)](https://aogavrilov.com/publications/inspectable-control/linkset.json) [Linkset (HTTP)](https://aogavrilov.com/publications/inspectable-control/linkset) [RO-Crate](https://aogavrilov.com/publications/inspectable-control/ro-crate-metadata.json)

DOI: [https://doi.org/10.1145/3803437.3807386](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.](https://aogavrilov.com/publications/inspectable-control/hierarchical-discrete-latent-code-editing.svg)

**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.](https://doi.org/10.1145/3803437.3807386) . Hergebruiksvoorwaarden: [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) . Aanbevolen bronvermelding: Gavrilov et al. (2026), Inspectable Control for Structure-Preserving Software Regeneration. [SVG downloaden](https://aogavrilov.com/publications/inspectable-control/hierarchical-discrete-latent-code-editing.svg) .*

### 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

## 

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

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

## 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. 2019 . [Generating Diverse High-Fidelity Images with VQ-VAE-2](https://arxiv.org/abs/1906.00446) . Advances in Neural Information Processing Systems .
2. Jacob Austin, Daniel D. Johnson, Jonathan Ho, Daniel Tarlow, Rianne van den Berg. 2021 . [Structured Denoising Diffusion Models in Discrete State-Spaces](https://arxiv.org/abs/2107.03006) . 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. 2024 . [Simple and Effective Masked Diffusion Language Models](https://arxiv.org/abs/2406.07524) . Advances in Neural Information Processing Systems .
4. Shraddha Barke, Michael B. James, Nadia Polikarpova. 2023 . [Grounded Copilot: How Programmers Interact with Code-Generating Models](https://doi.org/10.1145/3586030) . 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. 2023 . [RepoCoder: Repository-Level Code Completion Through Iterative Retrieval and Generation](https://doi.org/10.18653/v1/2023.emnlp-main.151) . Proceedings of the 2023 Conference on Empirical Methods in Natural Language Processing .

## Bronnen en reproduceerbaarheid

## 

### Dataverklaring

## Versies

## 

1. **Gepubliceerde versie** [ACM FSE Companion, 2026](https://doi.org/10.1145/3803437.3807386)
2. **Auteursmanuscript** [Tekstueel toegankelijk definitief manuscript met de uiteindelijke auteurslijst en DOI](https://aogavrilov.com/publications/inspectable-control/paper.pdf)
3. **Externe mirror van de volledige tekst** [Auteursmanuscript onder CC BY 4.0 op Hugging Face](https://huggingface.co/datasets/aogavrilov/inspectable-control-results/resolve/main/paper.pdf)
4. **Repositoryrecord openen** [Zenodo-record geïndexeerd door OpenAIRE](https://zenodo.org/records/21605395)
5. **Volledige tekst in repository openen** [Auteursmanuscript op Zenodo onder CC BY 4.0; tekstueel gelijkwaardig aan het lokale manuscript](https://zenodo.org/records/21605395/files/fse2026-posters-final11%20%284%29.pdf?download=1)
6. **Bronnen van de auteur** [Poster en diapresentatie](https://aogavrilov.com/publications/inspectable-control/media/)
7. **Bibliografisch record** [DBLP](https://dblp.org/rec/conf/sigsoft/GavrilovGMMM26)
8. **Wetenschappelijk record openen** [OpenAlex](https://openalex.org/W7169573479)
9. **Record in de citatiegraaf** [Semantic Scholar](https://www.semanticscholar.org/paper/93c3de037596ce177d9d882d214ccad5c5405b00)
10. **Door de auteur gedeelde volledige tekst** [ResearchGate](https://www.researchgate.net/publication/410435483_Inspectable_Control_for_Structure-Preserving_Software_Regeneration)
11. **Samenvatting in toegankelijke taal** [Kudos](https://www.growkudos.com/publications/10.1145%252F3803437.3807386/reader)

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

## Gerelateerde publicatie

- [Where Quality Breaks in Compressed Short-Text Generation: Staged Bottleneck Localization](https://aogavrilov.com/nl/publications/where-quality-breaks/)

Lees de [Controleerbare codebewerking](https://aogavrilov.com/nl/projects/discrete-latent-generation/) onderzoeksgids. [Over de auteur](https://aogavrilov.com/about/) .

### Gerichte onderzoeksnotities

Intentiespecifieke antwoorden met duidelijk afgebakend bewijs en verwijzingen naar dit artikel.

- [Lokale codewijziging met generatieve modellen](https://aogavrilov.com/nl/research-notes/localized-code-modification-generative-models/)
- [Codegeneratie onder beperkingen voor software-engineering](https://aogavrilov.com/nl/research-notes/constrained-code-generation-software-engineering/)
- [AI-ondersteunde refactoring: methoden en bewijsmateriaal](https://aogavrilov.com/nl/research-notes/ai-assisted-refactoring-evidence/)
- [Voorspelbare codegeneratie vereist een behoudscontract](https://aogavrilov.com/nl/research-notes/predictable-code-generation-preservation-contract/)
