Inspectable Control for Structure-Preserving Software Regeneration
Controllo ispezionabile per la rigenerazione del software con preservazione della struttura
Rigenerazione parziale controllabile del codice mediante rappresentazioni latenti discrete gerarchiche.
Leggi l’articolo completo in HTMLTesto ricercabile con formule, tabelle, figure e riferimenti bibliografici.
Manoscritto definitivo dell'autore con elenco finale degli autori e DOI. CC BY 4.0 author manuscript; the ACM DOI page remains the version of record. Condizioni di pubblicazione e riuso.
L'articolo in 30 secondi
Domanda di ricercaCome può un modello generativo modificare parti selezionate di un programma preservando determinati elementi della sua struttura a grana grossa?
Problema
La modifica del codice assistita dall’IA richiede spesso un singolo intervento circoscritto, mentre determinati elementi della struttura del programma devono restare invariati. Rigenerare l’intero programma può alterare regioni estranee alla modifica, e i vincoli a livello di token non offrono un’interfaccia di controllo a grana grossa.
Approccio
Lo studio codifica funzioni Python di 64 token con un VQ-VAE gerarchico, mantiene fissi determinati codici discreti a grana grossa e impiega la generazione discreta mascherata per rigenerare localmente il codice nelle restanti posizioni latenti.
Risultato principale
Il blocco di quattro codici di livello superiore innalza il tasso di parsing da 0.453 a 0.591; nel contempo, il tasso di modifica delle posizioni non bloccate resta pari a 0.936 e l’unicità dei campioni condizionati a 0.998.
Perché è importante
I risultati mostrano un compromesso misurabile tra stabilità e libertà nella modifica controllabile del codice e nella rigenerazione parziale dei programmi. Forniscono evidenze preliminari a favore di un livello di controllo latente ispezionabile, non una prova di equivalenza semantica o correttezza funzionale.
Abstract
I flussi di lavoro dell’ingegneria del software, come la riparazione vincolata, il raffinamento per fasi e la modifica con preservazione della struttura, richiedono di controllare che cosa cambia e che cosa resta invariato. Per queste operazioni, la generazione a livello di token offre un’interfaccia di controllo debole, poiché vincola il testo locale in superficie anziché gli invarianti strutturali a grana grossa che spesso si intendono preservare nell’ingegneria del software. Studiamo le rappresentazioni latenti discrete gerarchiche come rappresentazione intermedia ispezionabile degli artefatti software: un VQ-VAE gerarchico comprime una funzione Python di 64 token in codici discreti a grana grossa e fine, mentre la generazione discreta mascherata rigenera soltanto determinate posizioni in presenza di vincoli parziali. Su 2,000 funzioni Python pre-elaborate, il blocco di quattro codici di livello superiore aumenta il tasso di parsing da 0.453 a 0.591, mantenendo sostanziale la variazione nelle posizioni non bloccate (libertà di modifica, 0.936) e l’unicità dei campioni prossima al massimo (diversità, 0.998). A parità di contesto a grana grossa, il raffinamento al livello inferiore è meno efficace ma resta monotono, a sostegno di una lettura della gerarchia dal livello grossolano a quello fine. Nel complesso, questi risultati forniscono evidenze preliminari a favore di un’interfaccia pratica di controllo che consente la rigenerazione circoscritta degli artefatti software con preservazione della struttura, al di sopra del livello dei token.
Pubblicato in Proceedings of the 34th ACM International Conference on the Foundations of Software Engineering
Tipo di contributo Metodo di controllo nello spazio latente
pp. 1406–1407Poster di accompagnamento
Risultati principali
| Impostazione | Tasso di parsing | Struttura di base | Firma | Modifica non bloccata |
|---|---|---|---|---|
| Input (troncato) | 0.994 | 0.994 | 0.994 | — |
| Ricostruzione del codec | 0.857 | 0.848 | 0.493 | 0 |
| Generazione incondizionata | 0.453 | 0.08 | 0 | 0.995 |
| Condizionale, prefisso k=4 | 0.591 | 0.295 | 0.061 | 0.936 |
| Condizionale, intervallo della firma | 0.6 | 0.302 | 0.063 | non riportato |
Risultato principale. Il blocco delle variabili latenti a grana grossa migliora la stabilità sintattica senza annullare le modifiche nella regione modificabile; il risultato dimostra un controllo strutturale, non un'equivalenza funzionale garantita.
- Dataset
- 2,000 funzioni Python pre-elaborate tratte da un sottoinsieme di CodeParrot Clean
- Dimensione del campione
- 2,000 funzioni Python pre-elaborate; l'unicità dei campioni condizionati è pari a 0.998.
- Metriche
- Tasso di parsing; indicatori surrogati della preservazione di scheletro e firme; tasso di modifica delle posizioni sbloccate; unicità ed entropia dei campioni
- Incertezza
- Lo studio di due pagine riporta stime puntuali prive di intervalli di confidenza o di un'analisi statistica su più seed.
- Condizioni
- Funzioni di 64 token, decodifica argmax, 16 codici di livello superiore e 32 codici di livello inferiore; il blocco completo riproduce esattamente la ricostruzione del codec.
Scarica i risultati:CSVJSONMarkdownMirror esterno:Scheda del dataset su Hugging Face
PDF e citazione
Come citare l’articolo BibTeX è il formato raccomandato. Tutte le varianti riportate di seguito sono generate dallo stesso record di pubblicazione.
@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 -
File di citazione:Testo APATesto IEEERISCSL-JSONSchema.org JSON-LDXML OAI-DCXML OpenAIRE v4XML MODSMetadati XML JATS 1.4Testo integrale in formato JATS 1.4 XMLRDF TurtleInsieme di collegamenti (JSON)Insieme di collegamenti (HTTP)RO-Crate
Guida completa
Guida di ricerca completa
Metodo
Il metodo comprime una breve funzione Python in due livelli di codici discreti, mantiene fisse determinate posizioni a grana grossa e rigenera le posizioni rimanenti prima di decodificarle nuovamente in codice.
Codifica
Comprimere una funzione Python di 64 token in 16 codici di livello superiore e 32 codici di livello inferiore mediante un VQ-VAE gerarchico.
Blocca
Scegliere posizioni di codice a grana grossa che rappresentino la struttura da preservare, per esempio un prefisso che copra l'intervallo della firma della funzione.
Rigenerare
Eseguire la generazione discreta mascherata soltanto sulle posizioni sbloccate e decodificare nuovamente in codice sorgente la gerarchia completata.
Ispeziona
Prima di accettare una rigenerazione, misurare il tasso di parsing, gli indicatori surrogati strutturali, le modifiche nelle posizioni sbloccate e l'unicità dei campioni.
Idea principale
Il controllo viene applicato a una rappresentazione appresa al di sopra dei token: le posizioni latenti a grana grossa definiscono punti espliciti in cui la struttura può essere bloccata, mentre i dettagli implementativi circostanti restano modificabili.
Differenze rispetto ad approcci affini
I vincoli a livello di prompt o di token agiscono sul testo superficiale. L’interfaccia proposta espone punti di controllo discreti, sia grossolani sia fini, e misura il conseguente compromesso tra stabilità e libertà.
Qual è il contributo innovativo
Il lavoro introduce e valuta un livello gerarchico e ispezionabile di controllo latente per la rigenerazione delimitata di artefatti software.
Domande a cui questo articolo contribuisce a rispondere
Apri una domanda per ottenere una risposta concisa fondata sull'articolo. I limiti dettagliati delle evidenze sono riportati nella sezione Limitazioni.
Come può l’IA modificare il codice senza riscrivere tutto?
L’articolo studia la rigenerazione parziale del codice al di sopra del livello dei token. Un VQ-VAE gerarchico mappa una breve funzione Python in codici discreti grossolani e fini; le posizioni grossolane selezionate vengono bloccate e la generazione discreta mascherata modifica soltanto le posizioni latenti rimanenti prima della decodifica. In questo modo si definisce un confine di preservazione esplicito, anziché rigenerare l’intera funzione.
Quali metodi preservano la struttura del programma durante la generazione del codice?
Questo lavoro valuta un meccanismo di controllo basato su rappresentazioni latenti discrete gerarchiche. Le posizioni latenti a grana grossa possono essere mantenute fisse mentre si rigenerano quelle non bloccate; si misurano quindi il tasso di parsing e gli indicatori strutturali surrogati. Le evidenze riguardano la stabilità strutturale probabilistica di brevi funzioni Python e non dimostrano la preservazione esatta dell’AST, l’equivalenza semantica o la correttezza funzionale.
Le variabili latenti discrete gerarchiche possono offrire un controllo localizzato sul codice?
Nell’esperimento descritto, condotto su 2,000 funzioni, il blocco di quattro codici di livello superiore ha aumentato il tasso di parsing da 0.453 a 0.591. Nel contempo, è cambiata una quota pari a 0.936 delle posizioni non bloccate e l’unicità dei campioni condizionati è risultata pari a 0.998. Questi risultati costituiscono evidenze preliminari del fatto che vincoli latenti a grana grossa possano preservare parte della struttura senza eliminare la libertà di modifica locale né la diversità dei campioni.
Come può la generazione di codice bilanciare stabilità strutturale e diversità?
L’articolo valuta congiuntamente stabilità e libertà, anziché ottimizzare la sola validità. Il blocco dei codici grossolani accresce la validità sintattica, mentre le modifiche nelle posizioni non bloccate restano elevate e i campioni condizionati rimangono quasi tutti unici. Il risultato dimostra, nella configurazione esaminata, un compromesso misurabile tra stabilità e libertà, non un ottimo universale.
In che modo questo lavoro si rapporta alla modifica del codice assistita da LLM?
Il modello esaminato è un VQ-VAE gerarchico con generazione discreta mascherata, non un modello linguistico di grandi dimensioni. Il problema del controllo è tuttavia pertinente all'editing assistito da LLM, poiché le modifiche non necessarie al di fuori della regione richiesta costituiscono un problema concreto. L'articolo propone un meccanismo complementare nello spazio latente e un quadro valutativo, non un benchmark per l'editing tramite LLM.
Confronto con approcci affini
| Capacità | Controllo a livello di token | Controllo latente gerarchico |
|---|---|---|
| Mantieni fissa la struttura a grana grossa | Limitato | Blocco nativo dei codici a granularità grossolana |
| Rigenerazione parziale | Vincoli superficiali fragili | Ricampionamento mascherato dei codici selezionati |
| Punti di controllo ispezionabili | Nessun livello intermedio esplicito | Posizioni discrete a grana grossa e fine |
| Evidenze presentate in questo articolo | Non valutato come baseline completa | Diagnostica della stabilità sintattica e della libertà di modifica |
La tabella descrive le interfacce e le evidenze misurate nello studio; non rivendica né la correttezza funzionale né una superiorità universale.
Rilevanza e ambito
L’articolo è particolarmente pertinente per i lavori che richiedono un controllo esplicito su ciò che una trasformazione del codice assistita dall’IA può modificare e sulle parti del programma che devono restare stabili.
Generazione di codice controllabile con preservazione della struttura
Riparazione localizzata dei programmi e refactoring circoscritto
Rappresentazioni discrete gerarchiche per il codice sorgente
Generazione discreta mascherata per il codice sorgente
Controllo latente degli artefatti software
Limitazioni
- Lo studio è circoscritto a brevi funzioni Python troncate a 64 token.
- La valutazione impiega la decodifica argmax e misure surrogate sintattiche o strutturali, anziché test di equivalenza funzionale.
- La preservazione esatta della firma resta insoddisfacente.
- Il controllo di livello inferiore è meno efficace di quello di livello superiore.
- Le posizioni latenti non sono ancora allineate a regioni semantiche quali intervalli dell’AST, firme o strutture del flusso di controllo.
- I risultati non dimostrano la correttezza per attività concrete di riparazione, refactoring o modifica a livello di repository.
Riferimenti citati nell’articolo
Queste voci corrispondono alla sezione numerata dei riferimenti bibliografici nel PDF dell'articolo.
- 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.
Risorse e riproducibilità
- Editore
- ACM
- PDF locale del testo
- Manoscritto definitivo dell'autore con elenco finale degli autori e DOI
- Risorse della pubblicazione
- Il manoscritto pubblico, le tabelle dei risultati, la figura esplicativa e i file delle citazioni sono disponibili qui. Il codice d’implementazione e i checkpoint non sono stati resi pubblici.
Dichiarazione sui dati
- Fonte
- Un sottoinsieme pre-elaborato di CodeParrot Clean contenente 2,000 funzioni Python.
- Licenza
- Questo sito non ridistribuisce alcun file del dataset; il riuso resta soggetto alle licenze del dataset CodeParrot originario e del codice sorgente.
- Pre-elaborazione
- Le funzioni Python vengono tokenizzate e, prima della codifica gerarchica, troncate o completate mediante padding fino a 64 token.
- Suddivisione
- Il poster riporta un insieme di valutazione di 2.000 funzioni; l’articolo pubblico non include un manifesto immutabile della suddivisione tra training e validation.
- Formato
- Funzioni sorgente Python, sequenze di token in stile GPT, sequenze di codice di livello superiore di lunghezza 16 e sequenze di livello inferiore di lunghezza 32.
- Versione / checksum
- Nell'articolo di due pagine non sono riportati né un checksum del dataset né l'identificatore di uno snapshot immutabile.
- Acquisizione
- La pagina della pubblicazione non rende disponibile uno script pubblico di acquisizione.
- Limiti d'uso
- Il campione non è rappresentativo del software su scala di repository, di molteplici linguaggi di programmazione o di attività di riparazione verificate sul piano comportamentale.
Versioni
- Versione pubblicataACM FSE Companion, 2026
- Manoscritto dell'autoreManoscritto definitivo accessibile in formato testuale, con elenco finale degli autori e DOI
- Mirror esterno del testo integraleManoscritto dell'autore con licenza CC BY 4.0 su Hugging Face
- Apri il record nel repositoryRecord Zenodo indicizzato da OpenAIRE
- Apri il testo integrale nel repositoryManoscritto dell'autore su Zenodo con licenza CC BY 4.0; testualmente equivalente al manoscritto locale
- Risorse dell'autorePoster e presentazione
- Record bibliograficoDBLP
- Apri il record scientificoOpenAlex
- Record del grafo delle citazioniSemantic Scholar
- Testo integrale condiviso dall'autoreResearchGate
- Sintesi in linguaggio accessibileRiconoscimenti
Il DOI pubblicato è l’identificatore bibliografico primario. Questa pagina resta l’unico URL canonico del progetto in tutte le versioni.