# Inspectable Control for Structure-Preserving Software Regeneration

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

Document language: it

Controllo ispezionabile per la rigenerazione del software con preservazione della struttura

Rigenerazione parziale controllabile del codice mediante rappresentazioni latenti discrete gerarchiche.

[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, Mosca, Federazione Russa](https://axxx.tech/)

[Leggi l’articolo completo in HTML](https://aogavrilov.com/publications/inspectable-control/full-text/) Testo 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](https://creativecommons.org/licenses/by/4.0/) .

## L'articolo in 30 secondi

**Domanda di ricerca** Come 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

5 luglio 2026 pp. 1406–1407 Poster di accompagnamento

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

## Contenuti In questa pagina

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

Scarica i risultati: [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) Mirror esterno: [Scheda del dataset su Hugging Face](https://huggingface.co/datasets/aogavrilov/inspectable-control-results)

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

File di citazione: [Testo APA](https://aogavrilov.com/publications/inspectable-control/citation-apa.txt) [Testo 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) [Metadati XML JATS 1.4](https://aogavrilov.com/publications/inspectable-control/metadata.jats.xml) [Testo integrale in formato JATS 1.4 XML](https://aogavrilov.com/publications/inspectable-control/full-text/article.jats.xml) [RDF Turtle](https://aogavrilov.com/publications/inspectable-control/metadata.ttl) [Insieme di collegamenti (JSON)](https://aogavrilov.com/publications/inspectable-control/linkset.json) [Insieme di collegamenti (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)

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.

1. 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.
2. 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.
3. Rigenerare Eseguire la generazione discreta mascherata soltanto sulle posizioni sbloccate e decodificare nuovamente in codice sorgente la gerarchia completata.
4. 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.

![I codici grossolani selezionati del programma restano fissi, mentre i codici discreti fini mascherati vengono rigenerati e decodificati in una funzione Python modificata.](https://aogavrilov.com/publications/inspectable-control/hierarchical-discrete-latent-code-editing.svg)

**La modifica mediante codici latenti discreti gerarchici preserva determinati elementi della struttura del programma a grana grossa, rigenerando al contempo i codici fini nella regione modificabile.* Fonte: [Diagramma esplicativo creato dall'autore sulla base del metodo e dei risultati pubblicati.](https://doi.org/10.1145/3803437.3807386) . Condizioni di riutilizzo: [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) . Attribuzione suggerita: Gavrilov et al. (2026), Inspectable Control for Structure-Preserving Software Regeneration. [Scarica l'SVG](https://aogavrilov.com/publications/inspectable-control/hierarchical-discrete-latent-code-editing.svg) .*

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

1. 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.
2. 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.
3. 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.
4. 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.
5. 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.

1. Generazione di codice controllabile con preservazione della struttura
2. Riparazione localizzata dei programmi e refactoring circoscritto
3. Rappresentazioni discrete gerarchiche per il codice sorgente
4. Generazione discreta mascherata per il codice sorgente
5. 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.

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 .

## Risorse e riproducibilità

## 

### Dichiarazione sui dati

## Versioni

## 

1. **Versione pubblicata** [ACM FSE Companion, 2026](https://doi.org/10.1145/3803437.3807386)
2. **Manoscritto dell'autore** [Manoscritto definitivo accessibile in formato testuale, con elenco finale degli autori e DOI](https://aogavrilov.com/publications/inspectable-control/paper.pdf)
3. **Mirror esterno del testo integrale** [Manoscritto dell'autore con licenza CC BY 4.0 su Hugging Face](https://huggingface.co/datasets/aogavrilov/inspectable-control-results/resolve/main/paper.pdf)
4. **Apri il record nel repository** [Record Zenodo indicizzato da OpenAIRE](https://zenodo.org/records/21605395)
5. **Apri il testo integrale nel repository** [Manoscritto dell'autore su Zenodo con licenza CC BY 4.0; testualmente equivalente al manoscritto locale](https://zenodo.org/records/21605395/files/fse2026-posters-final11%20%284%29.pdf?download=1)
6. **Risorse dell'autore** [Poster e presentazione](https://aogavrilov.com/publications/inspectable-control/media/)
7. **Record bibliografico** [DBLP](https://dblp.org/rec/conf/sigsoft/GavrilovGMMM26)
8. **Apri il record scientifico** [OpenAlex](https://openalex.org/W7169573479)
9. **Record del grafo delle citazioni** [Semantic Scholar](https://www.semanticscholar.org/paper/93c3de037596ce177d9d882d214ccad5c5405b00)
10. **Testo integrale condiviso dall'autore** [ResearchGate](https://www.researchgate.net/publication/410435483_Inspectable_Control_for_Structure-Preserving_Software_Regeneration)
11. **Sintesi in linguaggio accessibile** [Riconoscimenti](https://www.growkudos.com/publications/10.1145%252F3803437.3807386/reader)

Il DOI pubblicato è l’identificatore bibliografico primario. Questa pagina resta l’unico URL canonico del progetto in tutte le versioni.

## Pubblicazione correlata

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

Leggi [Modifica controllabile del codice](https://aogavrilov.com/it/projects/discrete-latent-generation/) guida alla ricerca. [Informazioni sull'autore](https://aogavrilov.com/about/) .

### Note di ricerca mirate

Risposte specifiche per ciascun intento, con limiti espliciti delle evidenze e rimandi al presente articolo.

- [Modifica localizzata del codice mediante modelli generativi](https://aogavrilov.com/it/research-notes/localized-code-modification-generative-models/)
- [Generazione vincolata di codice per l'ingegneria del software](https://aogavrilov.com/it/research-notes/constrained-code-generation-software-engineering/)
- [Refactoring assistito dall'IA: metodi ed evidenze](https://aogavrilov.com/it/research-notes/ai-assisted-refactoring-evidence/)
- [La generazione prevedibile di codice richiede un contratto di preservazione](https://aogavrilov.com/it/research-notes/predictable-code-generation-preservation-contract/)
