Inspectable Control for Structure-Preserving Software Regeneration
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.
Lire l’article intégral au format HTMLTexte 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.
L’article en 30 secondes
Question de rechercheComment 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
pp. 1406–1407Poster associé
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.
- Jeu de données
- 2 000 fonctions Python prétraitées issues d’un sous-ensemble de CodeParrot Clean
- Taille de l’échantillon
- 2 000 fonctions Python prétraitées ; l’unicité des échantillons conditionnels est de 0,998.
- Métriques
- Taux d’analyse syntaxique ; indicateurs indirects de préservation du squelette et des signatures ; taux de modification des positions déverrouillées ; unicité et entropie des échantillons
- Incertitude
- Cette étude de deux pages fournit des estimations ponctuelles, sans intervalles de confiance ni analyse statistique sur plusieurs graines aléatoires.
- Conditions
- Fonctions de 64 jetons, décodage par argmax, 16 codes de haut niveau et 32 codes de niveau inférieur ; le verrouillage intégral restitue exactement la reconstruction par le codec.
Télécharger les résultats :CSVJSONMarkdownMiroir externe :Fiche de jeu de données Hugging Face
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},
}
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 -
Fichiers de citation :Texte APATexte IEEERISCSL-JSONSchema.org JSON-LDXML OAI-DCXML OpenAIRE v4XML MODSMétadonnées XML JATS 1.4Texte intégral au format XML JATS 1.4RDF TurtleEnsemble de liens (JSON)Ensemble de liens (HTTP)RO-Crate
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Génération de code contrôlable avec préservation de la structure
Réparation localisée de programmes et refactorisation circonscrite
Représentations discrètes hiérarchiques du code source
Génération discrète masquée de code source
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.
- 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.
Ressources et reproductibilité
- Éditeur
- ACM
- Ressources de la publication
- Le manuscrit public, les tableaux de résultats, la figure explicative et les fichiers de citation sont disponibles ici. Le code d’implémentation et les points de contrôle ne sont pas rendus publics.
Déclaration relative aux données
- Source
- Un sous-ensemble prétraité de CodeParrot Clean comprenant 2 000 fonctions Python.
- Licence
- Ce site ne redistribue aucun fichier de jeu de données ; toute réutilisation demeure soumise aux licences du jeu de données CodeParrot en amont et du code source.
- Prétraitement
- Les fonctions Python sont segmentées en jetons, puis tronquées ou complétées jusqu’à 64 jetons avant l’encodage hiérarchique.
- Répartition
- Le poster fait état d’un ensemble d’évaluation de 2 000 fonctions ; l’article public ne fournit pas de manifeste immuable de la répartition entraînement/validation.
- Format
- Fonctions sources Python, séquences de jetons de type GPT, séquences de 16 codes de niveau supérieur et séquences de 32 codes de niveau inférieur.
- Version / somme de contrôle
- L’article de deux pages ne fournit ni somme de contrôle du jeu de données ni identifiant immuable de l’instantané.
- Acquisition
- Aucun script public d’acquisition n’est diffusé avec la page de la publication.
- Limites d’utilisation
- L’échantillon n’est représentatif ni des logiciels à l’échelle d’un dépôt, ni de plusieurs langages de programmation, ni des tâches de réparation dont le comportement a été vérifié.
Versions
- Version publiéeACM FSE Companion, 2026
- Miroir externe du texte intégralManuscrit de l’auteur sous licence CC BY 4.0 sur Hugging Face
- Ouvrir la notice dans l’entrepôtNotice Zenodo indexée par OpenAIRE
- Ouvrir le texte intégral dans l’entrepôtManuscrit de l’auteur sur Zenodo sous licence CC BY 4.0 ; texte équivalent au manuscrit local
- Ressources de l’auteurPoster et diaporama
- Notice bibliographiqueDBLP
- Ouvrir la notice scientifiqueOpenAlex
- Notice du graphe de citationsSemantic Scholar
- Texte intégral diffusé par l’auteurResearchGate
- Résumé en langage clairKudos
Le DOI publié constitue l’identifiant bibliographique principal. Cette page demeure l’unique URL canonique du projet pour toutes les versions.