# Inspectable Control for Structure-Preserving Software Regeneration

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

Document language: fr

Contrôle inspectable pour la régénération de logiciels avec préservation de la structure

Régénération partielle et contrôlable de code au moyen de représentations latentes discrètes hiérarchiques.

[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, Saint Petersburg, Russian Federation](https://en.itmo.ru/)
2. [AXXX, Moscou, Fédération de Russie](https://axxx.tech/)

[Lire l’article intégral au format HTML](https://aogavrilov.com/publications/inspectable-control/full-text/) Texte interrogeable comprenant les formules, tableaux, figures et références.

Manuscrit définitif de l’auteur avec la liste finale des auteurs et le DOI. CC BY 4.0 author manuscript; the ACM DOI page remains the version of record. [Conditions de publication et de réutilisation](https://creativecommons.org/licenses/by/4.0/) .

## L’article en 30 secondes

**Question de recherche** Comment un modèle génératif peut-il modifier certaines parties d’un programme tout en préservant des éléments choisis de sa structure grossière ?

### Problème

La modification de code assistée par l’IA exige souvent un changement circonscrit, tandis que certaines structures du programme doivent rester fixes. Régénérer le programme entier peut altérer des régions sans rapport avec la demande, et les contraintes au niveau des jetons n’offrent pas d’interface de contrôle grossière.

### Approche

L’étude encode des fonctions Python de 64 jetons au moyen d’un VQ-VAE hiérarchique, verrouille certains codes discrets grossiers et recourt à la génération discrète masquée pour régénérer localement le code dans les positions latentes restantes.

### Résultat principal

Le verrouillage de quatre codes de niveau supérieur fait passer le taux d’analyse syntaxique de 0,453 à 0,591, tandis que les positions non verrouillées changent encore à un taux de 0,936 et que la proportion d’échantillons conditionnels uniques demeure de 0,998.

### Pourquoi est-ce important ?

Les résultats mettent en évidence un compromis stabilité–liberté mesurable pour l’édition contrôlable du code et la régénération partielle de programmes. Ils fournissent de premiers éléments en faveur d’une couche de contrôle latent inspectable, sans démontrer l’équivalence sémantique ni la correction fonctionnelle.

## Résumé

Les processus de génie logiciel tels que la réparation sous contraintes, le raffinement par étapes et la modification avec préservation de la structure exigent de maîtriser ce qui change et ce qui demeure fixe. Pour ces opérations, la génération au niveau des jetons offre une interface de contrôle limitée : elle contraint la forme textuelle locale plutôt que les invariants structurels de haut niveau que le génie logiciel cherche souvent à préserver. Nous étudions les variables latentes discrètes hiérarchiques comme représentation intermédiaire inspectable des artefacts logiciels : un VQ-VAE hiérarchique compresse une fonction Python de 64 jetons en codes discrets de niveau supérieur et inférieur, et la génération discrète masquée ne régénère que certaines positions sous contraintes partielles. Sur 2 000 fonctions Python prétraitées, le verrouillage de quatre codes de niveau supérieur fait passer le taux d’analyse syntaxique de 0,453 à 0,591, tout en maintenant des changements substantiels aux positions non verrouillées (liberté de modification : 0,936) et une unicité des échantillons presque maximale (diversité : 0,998). À contexte de niveau supérieur fixe, le raffinement au niveau inférieur est moins marqué mais demeure monotone, ce qui étaye une lecture hiérarchique du général au détaillé. Dans l’ensemble, ces résultats apportent de premiers éléments en faveur d’une couche de contrôle pratique permettant, au-dessus du niveau des jetons, une régénération circonscrite d’artefacts logiciels avec préservation de la structure.

Publié dans Actes de la 34th ACM International Conference on the Foundations of Software Engineering

Type de contribution Méthode de contrôle dans l’espace latent

5 juillet 2026 pp. 1406–1407 Poster associé

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

## Sommaire Sur cette page

## Principaux résultats

| Paramètre | Taux d’analyse syntaxique | Squelette | Signature | Modification déverrouillée |
| --- | --- | --- | --- | --- |
| Entrée (tronquée) | 0.994 | 0.994 | 0.994 | — |
| Reconstruction du codec | 0.857 | 0.848 | 0.493 | 0 |
| Génération non conditionnelle | 0.453 | 0.08 | 0 | 0.995 |
| Conditionnel, préfixe k=4 | 0.591 | 0.295 | 0.061 | 0.936 |
| Conditionnel, empan de la signature | 0.6 | 0.302 | 0.063 | non indiqué |

**Résultat principal.** Le verrouillage des variables latentes grossières améliore la stabilité syntaxique sans supprimer les modifications dans la région éditable ; ce résultat atteste un contrôle structurel, et non une équivalence fonctionnelle garantie.

Télécharger les résultats : [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) Miroir externe : [Fiche de jeu de données Hugging Face](https://huggingface.co/datasets/aogavrilov/inspectable-control-results)

## PDF et citation

**Citer cet article** BibTeX est le format recommandé. Toutes les variantes ci-dessous sont produites à partir de la même notice de publication.

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

Fichiers de citation : [Texte APA](https://aogavrilov.com/publications/inspectable-control/citation-apa.txt) [Texte IEEE](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) [XML OAI-DC](https://aogavrilov.com/publications/inspectable-control/oai-dc.xml) [XML OpenAIRE v4](https://aogavrilov.com/publications/inspectable-control/openaire.xml) [XML MODS](https://aogavrilov.com/publications/inspectable-control/mods.xml) [Métadonnées XML JATS 1.4](https://aogavrilov.com/publications/inspectable-control/metadata.jats.xml) [Texte intégral au format XML JATS 1.4](https://aogavrilov.com/publications/inspectable-control/full-text/article.jats.xml) [RDF Turtle](https://aogavrilov.com/publications/inspectable-control/metadata.ttl) [Ensemble de liens (JSON)](https://aogavrilov.com/publications/inspectable-control/linkset.json) [Ensemble de liens (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)

Guide complet

## Guide de recherche complet

## Méthode

## 

La méthode compresse une courte fonction Python en deux niveaux de codes discrets, fige certaines positions grossières et régénère les positions restantes avant de les décoder de nouveau en code.

1. Encoder Comprimer une fonction Python de 64 jetons en 16 codes de niveau supérieur et 32 codes de niveau inférieur au moyen d’un VQ-VAE hiérarchique.
2. Verrouiller Choisir des positions de code grossières qui représentent la structure à préserver, par exemple un préfixe couvrant l’empan de la signature de fonction.
3. Régénérer Exécuter la génération discrète masquée uniquement sur les positions déverrouillées, puis redécoder la hiérarchie complétée en code source.
4. Examiner Avant d’accepter une régénération, mesurer le taux d’analyse syntaxique, les indicateurs indirects structurels, les changements aux positions déverrouillées et l’unicité des échantillons.

![Certains codes grossiers du programme restent fixes, tandis que les codes discrets fins masqués sont régénérés puis décodés en une fonction Python modifiée.](https://aogavrilov.com/publications/inspectable-control/hierarchical-discrete-latent-code-editing.svg)

**La modification hiérarchique de codes latents discrets préserve certains éléments de la structure grossière du programme tout en régénérant les codes fins dans la région éditable.* Source : [Schéma explicatif créé par l’auteur à partir de la méthode et des résultats publiés.](https://doi.org/10.1145/3803437.3807386) . Conditions de réutilisation : [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) . Attribution suggérée : Gavrilov et al. (2026), Inspectable Control for Structure-Preserving Software Regeneration. [Télécharger le fichier SVG](https://aogavrilov.com/publications/inspectable-control/hierarchical-discrete-latent-code-editing.svg) .*

### Idée centrale

Le contrôle s’applique à une représentation apprise située au-dessus des jetons : les positions latentes de niveau supérieur définissent explicitement les emplacements où la structure peut être figée, tandis que les détails d’implémentation voisins restent modifiables.

### Différences par rapport aux approches apparentées

Les contraintes formulées dans la consigne ou appliquées au niveau des jetons portent sur la forme textuelle. L’interface proposée expose des points de contrôle discrets de niveau supérieur et inférieur, puis mesure le compromis entre stabilité et liberté qui en résulte.

### Apport nouveau

Ce travail présente et évalue une couche hiérarchique de contrôle latent inspectable destinée à la régénération circonscrite d’artefacts logiciels.

## Questions auxquelles cet article contribue à répondre

## 

Ouvrez une question pour obtenir une réponse concise fondée sur l’article. Les frontières détaillées des éléments probants figurent dans la section Limites.

1. Comment l’IA peut-elle modifier du code sans tout réécrire ? L’article étudie la régénération partielle du code au-dessus du niveau des jetons. Un VQ-VAE hiérarchique représente une courte fonction Python par des codes discrets de niveau supérieur et inférieur ; certaines positions de niveau supérieur sont verrouillées, et la génération discrète masquée ne modifie que les autres positions latentes avant le décodage. Cette approche établit une frontière de préservation explicite au lieu de régénérer la fonction entière.
2. Quelles méthodes préservent la structure du programme lors de la génération de code ? Ce travail met à l’épreuve un contrôle latent discret hiérarchique. Les positions latentes grossières peuvent être fixées tandis que les positions déverrouillées sont régénérées ; le taux d’analyse syntaxique réussie et des indicateurs indirects de structure sont ensuite mesurés. Les résultats concernent la stabilité structurelle probabiliste de courtes fonctions Python ; ils n’établissent ni la préservation exacte de l’AST, ni l’équivalence sémantique, ni la correction fonctionnelle.
3. Des variables latentes discrètes hiérarchiques peuvent-elles permettre un contrôle localisé du code ? Dans l’expérience présentée sur 2 000 fonctions, le verrouillage de quatre codes de niveau supérieur a porté le taux d’analyse syntaxique de 0.453 à 0.591. Parallèlement, 0.936 des positions non verrouillées ont changé et la proportion d’échantillons conditionnels uniques a atteint 0.998. Ces résultats constituent des indications préliminaires selon lesquelles des contraintes latentes grossières peuvent préserver une partie de la structure sans supprimer la liberté de modification locale ni la diversité des échantillons.
4. Comment la génération de code peut-elle concilier stabilité structurelle et diversité ? L’article évalue conjointement la stabilité et la liberté, au lieu d’optimiser la seule validité. Le verrouillage des codes grossiers accroît la validité syntaxique, tandis que les modifications aux positions non verrouillées restent importantes et que les échantillons conditionnels demeurent presque tous uniques. Le résultat met en évidence un compromis stabilité–liberté mesurable dans la configuration testée, et non un optimum universel.
5. Quel rapport ce travail entretient-il avec la modification de code assistée par les LLM ? Le modèle testé est un VQ-VAE hiérarchique doté d’une génération discrète masquée, et non un grand modèle de langage. La question du contrôle reste néanmoins pertinente pour l’édition assistée par LLM, car les modifications superflues hors de la région demandée constituent une difficulté pratique. L’article propose un mécanisme complémentaire dans l’espace latent et un cadre d’évaluation, non un banc d’essai de l’édition par LLM.

## Comparaison avec les approches apparentées

## 

| Capacité | Contrôle au niveau des jetons | Contrôle latent hiérarchique |
| --- | --- | --- |
| Figer la structure grossière | Limité | Verrouillage natif des codes grossiers |
| Régénération partielle | Contraintes de surface fragiles | Rééchantillonnage masqué des codes sélectionnés |
| Points de contrôle inspectables | Aucune couche intermédiaire explicite | Positions discrètes grossières et fines |
| Données probantes présentées dans cet article | Non évalué en tant que référence complète | Diagnostics de stabilité syntaxique et de liberté d’édition |

Le tableau décrit les interfaces et les résultats mesurés dans l’étude ; il ne revendique ni correction fonctionnelle ni supériorité universelle.

## Pertinence et périmètre

## 

L’article intéresse tout particulièrement les travaux qui exigent un contrôle explicite de ce qu’une transformation de code assistée par IA peut modifier et des parties du programme qui doivent rester stables.

1. Génération de code contrôlable avec préservation de la structure
2. Réparation localisée de programmes et refactorisation circonscrite
3. Représentations discrètes hiérarchiques du code source
4. Génération discrète masquée de code source
5. Contrôle latent des artefacts logiciels

## Limites

## 

- L’étude se limite à de courtes fonctions Python tronquées à 64 jetons.
- L’évaluation repose sur un décodage par argmax et sur des indicateurs indirects syntaxiques ou structurels, plutôt que sur des tests d’équivalence fonctionnelle.
- La préservation exacte des signatures demeure insuffisante.
- Le contrôle de niveau inférieur est moins efficace que celui de niveau supérieur.
- Les positions latentes ne sont pas encore alignées sur des régions sémantiques telles que les segments d’AST, les signatures ou la structure du flot de contrôle.
- Les résultats n’établissent pas la correction de réparations, de refactorisations ou de modifications concrètes à l’échelle d’un dépôt.

## Références citées dans l’article

## 

Ces entrées correspondent à la section numérotée « References » du PDF de l’article.

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 .

## Ressources et reproductibilité

## 

### Déclaration relative aux données

## Versions

## 

1. **Version publiée** [ACM FSE Companion, 2026](https://doi.org/10.1145/3803437.3807386)
2. **Manuscrit de l’auteur** [Version définitive du manuscrit accessible sous forme textuelle, avec la liste finale des auteurs et le DOI](https://aogavrilov.com/publications/inspectable-control/paper.pdf)
3. **Miroir externe du texte intégral** [Manuscrit de l’auteur sous licence CC BY 4.0 sur Hugging Face](https://huggingface.co/datasets/aogavrilov/inspectable-control-results/resolve/main/paper.pdf)
4. **Ouvrir la notice dans l’entrepôt** [Notice Zenodo indexée par OpenAIRE](https://zenodo.org/records/21605395)
5. **Ouvrir le texte intégral dans l’entrepôt** [Manuscrit de l’auteur sur Zenodo sous licence CC BY 4.0 ; texte équivalent au manuscrit local](https://zenodo.org/records/21605395/files/fse2026-posters-final11%20%284%29.pdf?download=1)
6. **Ressources de l’auteur** [Poster et diaporama](https://aogavrilov.com/publications/inspectable-control/media/)
7. **Notice bibliographique** [DBLP](https://dblp.org/rec/conf/sigsoft/GavrilovGMMM26)
8. **Ouvrir la notice scientifique** [OpenAlex](https://openalex.org/W7169573479)
9. **Notice du graphe de citations** [Semantic Scholar](https://www.semanticscholar.org/paper/93c3de037596ce177d9d882d214ccad5c5405b00)
10. **Texte intégral diffusé par l’auteur** [ResearchGate](https://www.researchgate.net/publication/410435483_Inspectable_Control_for_Structure-Preserving_Software_Regeneration)
11. **Résumé en langage clair** [Kudos](https://www.growkudos.com/publications/10.1145%252F3803437.3807386/reader)

Le DOI publié constitue l’identifiant bibliographique principal. Cette page demeure l’unique URL canonique du projet pour toutes les versions.

## Publication connexe

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

Consulter le guide consacré à [Édition contrôlable de code](https://aogavrilov.com/fr/projects/discrete-latent-generation/) pour approfondir. [À propos de l’auteur](https://aogavrilov.com/about/) .

### Notes de recherche ciblées

Réponses adaptées à l’intention, assorties de limites probantes et de liens vers cet article.

- [Modification localisée du code à l’aide de modèles génératifs](https://aogavrilov.com/fr/research-notes/localized-code-modification-generative-models/)
- [Génération de code sous contraintes pour le génie logiciel](https://aogavrilov.com/fr/research-notes/constrained-code-generation-software-engineering/)
- [Refactorisation assistée par l’IA : méthodes et éléments probants](https://aogavrilov.com/fr/research-notes/ai-assisted-refactoring-evidence/)
- [La génération prédictible de code exige un contrat de préservation](https://aogavrilov.com/fr/research-notes/predictable-code-generation-preservation-contract/)
