Inspectable Control for Structure-Preserving Software Regeneration
Control inspectabil pentru regenerarea software cu păstrarea structurii
Regenerare parțială controlabilă a codului folosind reprezentări latente discrete ierarhice.
Citiți articolul integral în format HTMLText interogabil cu formule, tabele, figuri și referințe.
Versiunea finală a manuscrisului furnizată de autor, cu lista definitivă de autori și DOI. CC BY 4.0 author manuscript; the ACM DOI page remains the version of record. Condiții de publicare și reutilizare.
Lucrarea în 30 de secunde
Întrebare de cercetareCum poate un model generativ să modifice anumite părți ale unui program, păstrând elementele alese ale structurii sale grosiere?
Problemă
Modificarea codului asistată de IA necesită adesea o singură schimbare delimitată, în timp ce o structură selectată a programului rămâne fixă. Regenerarea întregului program poate perturba regiuni fără legătură, iar constrângerile la nivel de token nu oferă o suprafață de control grosieră.
Abordare
Studiul codifică funcții Python de 64 de tokenuri cu un VQ-VAE ierarhic, blochează anumite coduri discrete grosiere și utilizează generarea discretă mascată pentru regenerarea localizată a codului în pozițiile latente rămase.
Rezultatul principal
Blocarea a patru coduri de nivel superior mărește rata de analizare de la 0.453 la 0.591, în timp ce pozițiile neblocate continuă să se modifice cu rata 0.936, iar eșantioanele condiționate rămân unice în proporție de 0.998.
De ce este important
Rezultatele evidențiază un compromis măsurabil între stabilitate și libertate pentru editarea controlabilă a codului și regenerarea parțială a programelor. Ele oferă dovezi preliminare pentru un strat latent de control inspectabil, nu o demonstrație a echivalenței semantice sau a corectitudinii funcționale.
Rezumat
Fluxurile de lucru din ingineria software, precum repararea constrânsă, rafinarea etapizată și modificarea cu păstrarea structurii, impun controlul asupra elementelor care se schimbă și a celor care rămân fixe. Generarea la nivel de tokenuri oferă o interfață de control insuficientă pentru aceste operații, deoarece constrânge forma locală a textului, nu invariantele structurale grosiere pe care ingineria software urmărește adesea să le păstreze. Studiem variabilele latente discrete ierarhice ca reprezentare intermediară inspectabilă pentru artefacte software: un VQ-VAE ierarhic comprimă o funcție Python de 64 de tokenuri în coduri discrete grosiere și fine, iar generarea discretă mascată regenerează numai pozițiile selectate, sub constrângeri parțiale. Pe 2,000 de funcții Python preprocesate, blocarea a patru coduri de nivel superior îmbunătățește rata de parsare de la 0.453 la 0.591, menținând totodată modificări substanțiale în pozițiile deblocate (libertatea editării, 0.936) și o unicitate aproape maximă a eșantioanelor (diversitate, 0.998). Cu un context grosier fix, rafinarea la nivelul inferior este mai slabă, dar rămâne monotonă, ceea ce susține o interpretare de la grosier la fin a ierarhiei. În ansamblu, aceste rezultate oferă dovezi preliminare privind un strat practic de control care permite regenerarea delimitată a artefactelor software, cu păstrarea structurii, deasupra nivelului tokenurilor.
Publicat în Proceedings of the 34th ACM International Conference on the Foundations of Software Engineering
Tipul contribuției Metodă de control în spațiul latent
pp. 1406–1407Poster asociat
Rezultate principale
| Configurație | Rata de analizare sintactică | Schemă structurală | Semnătură | Modificare deblocată |
|---|---|---|---|---|
| Intrare (trunchiată) | 0.994 | 0.994 | 0.994 | — |
| Reconstrucția codecului | 0.857 | 0.848 | 0.493 | 0 |
| Generare necondiționată | 0.453 | 0.08 | 0 | 0.995 |
| Condiționat, prefix k=4 | 0.591 | 0.295 | 0.061 | 0.936 |
| Condiționat, intervalul semnăturii | 0.6 | 0.302 | 0.063 | neraportat |
Rezultatul principal. Blocarea variabilelor latente grosiere îmbunătățește stabilitatea sintactică fără a suprima modificările din regiunea editabilă; rezultatul demonstrează control structural, nu o echivalență funcțională garantată.
- Set de date
- 2,000 de funcții Python preprocesate dintr-un subset CodeParrot Clean
- Dimensiunea eșantionului
- 2,000 de funcții Python preprocesate; unicitatea eșantioanelor condiționate este 0.998.
- Metrici
- Rata de analizare sintactică; indicatori indirecți ai păstrării scheletului și semnăturii; rata de modificare a pozițiilor deblocate; unicitatea și entropia eșantioanelor
- Incertitudine
- Studiul de două pagini raportează estimări punctuale, fără intervale de încredere sau analiză statistică bazată pe inițializări aleatoare multiple.
- Condiții
- funcții de 64 de tokenuri, decodificare argmax, 16 coduri de nivel superior și 32 de coduri de nivel inferior; blocarea integrală recuperează exact reconstrucția codecului.
Descărcați rezultatele:CSVJSONMarkdownOglindă externă:Fișa setului de date Hugging Face
PDF și citare
Citați această lucrare BibTeX este formatul recomandat. Fiecare variantă de mai jos este generată din aceeași înregistrare a publicației.
@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 -
Fișiere de citare:Text APAText IEEERISCSL-JSONSchema.org JSON-LDOAI-DC XMLOpenAIRE v4 XMLMODS XMLMetadate XML JATS 1.4Text integral în format JATS 1.4 XMLRDF TurtleSet de legături (JSON)Set de legături (HTTP)RO-Crate
Ghid complet
Ghid complet de cercetare
Metodă
Metoda comprimă o funcție Python scurtă în două niveluri de coduri discrete, fixează pozițiile grosiere selectate și regenerează pozițiile rămase înainte de decodarea înapoi în cod.
Codificare
Comprimați o funcție Python de 64 de tokenuri în 16 coduri de nivel superior și 32 de coduri de nivel inferior, utilizând un VQ-VAE ierarhic.
Blocați
Alegeți poziții de cod grosiere care reprezintă structura ce trebuie conservată, precum un prefix care acoperă intervalul semnăturii funcției.
Regenerați
Rulați generarea discretă mascată numai asupra pozițiilor deblocate și decodificați ierarhia completată înapoi în cod-sursă.
Inspectați
Înainte de a accepta o regenerare, măsurați rata de analizare sintactică, indicatorii indirecți structurali, modificarea pozițiilor deblocate și unicitatea eșantioanelor.
Ideea principală
Controlul se aplică unei reprezentări învățate, situate deasupra tokenurilor: pozițiile latente grosiere definesc locuri explicite în care structura poate fi fixată, în timp ce detaliile de implementare din proximitate rămân editabile.
Deosebirea față de abordările înrudite
Constrângerile la nivel de instrucțiune sau de token operează asupra textului de suprafață. Interfața propusă expune puncte discrete de control, atât grosiere, cât și fine, și măsoară compromisul rezultat între stabilitate și libertate.
Elemente de noutate
Lucrarea introduce și evaluează un strat ierarhic și inspectabil de control latent pentru regenerarea delimitată a artefactelor software.
Întrebări la care contribuie acest articol
Deschideți o întrebare pentru un răspuns concis fundamentat în lucrare. Limitele detaliate ale dovezilor sunt prezentate în secțiunea Limitări.
Cum poate IA să editeze cod fără a rescrie totul?
Lucrarea studiază regenerarea parțială a codului deasupra nivelului tokenilor. Un VQ-VAE ierarhic mapează o funcție Python scurtă în coduri discrete grosiere și fine; pozițiile grosiere selectate sunt blocate, iar generarea discretă mascată modifică numai pozițiile latente rămase înainte de decodare. Astfel se obține o limită de conservare explicită, în locul regenerării întregii funcții.
Ce metode păstrează structura programului în timpul generării codului?
Lucrarea testează controlul latent discret ierarhic. Pozițiile latente grosiere pot fi fixate, în timp ce pozițiile deblocate sunt regenerate, după care se măsoară rata de analizare sintactică și indicatorii indirecți structurali. Dovezile privesc stabilitatea structurală probabilistică pentru funcții Python scurte; ele nu demonstrează păstrarea exactă a AST, echivalența semantică sau corectitudinea funcțională.
Pot variabilele latente discrete ierarhice să ofere un control localizat asupra codului?
În experimentul raportat, care a inclus 2.000 de funcții, blocarea a patru coduri de nivel superior a crescut rata de analizare de la 0.453 la 0.591. Totodată, 0.936 dintre pozițiile neblocate s-au modificat, iar eșantioanele condiționate au fost unice în proporție de 0.998. Aceste rezultate constituie dovezi preliminare că anumite constrângeri latente grosiere pot conserva o parte din structură fără a elimina libertatea editării locale sau diversitatea eșantioanelor.
Cum poate generarea de cod să echilibreze stabilitatea structurală și diversitatea?
Lucrarea evaluează împreună stabilitatea și libertatea, în loc să optimizeze exclusiv validitatea. Blocarea codurilor grosiere sporește validitatea sintactică, în timp ce modificarea pozițiilor deblocate rămâne ridicată, iar eșantioanele condiționate rămân aproape în întregime unice. Rezultatul demonstrează un compromis măsurabil între stabilitate și libertate în configurația testată, nu un optim universal.
Cum se raportează această lucrare la editarea codului asistată de LLM-uri?
Modelul testat este un VQ-VAE ierarhic cu generare discretă mascată, nu un model lingvistic de mari dimensiuni. Problema controlului este totuși relevantă pentru editarea asistată de LLM, deoarece modificările inutile din afara regiunii solicitate constituie o dificultate practică. Lucrarea propune un mecanism complementar în spațiul latent și un cadru de evaluare, nu un reper de evaluare pentru editarea cu LLM.
Comparație cu abordări înrudite
| Capabilitate | Control la nivel de token | Control latent ierarhic |
|---|---|---|
| Fixați structura grosieră | Limitat | Blocarea nativă a codurilor grosiere |
| Regenerare parțială | Constrângeri fragile de suprafață | Reeșantionarea mascată a codurilor selectate |
| Puncte de control inspectabile | Fără strat intermediar explicit | Poziții discrete grosiere și fine |
| Dovezile din această lucrare | Nu a fost evaluat ca linie de bază completă | Diagnosticarea stabilității sintactice și a libertății de editare |
Tabelul descrie interfețele și dovezile măsurate în studiu; nu susține corectitudinea funcțională sau superioritatea universală.
Relevanță și domeniu de aplicare
Lucrarea este deosebit de relevantă pentru cercetările care necesită control explicit asupra elementelor pe care o transformare de cod asistată de IA le poate modifica și asupra părților programului care trebuie să rămână stabile.
Generare controlabilă de cod cu conservarea structurii
Repararea localizată a programelor și refactorizarea delimitată
Reprezentări discrete ierarhice pentru codul-sursă
Generare discretă mascată pentru codul-sursă
Control latent pentru artefacte software
Limitări
- Studiul se limitează la funcții Python scurte, trunchiate la 64 de tokenuri.
- Evaluarea utilizează decodificarea argmax și indicatori surogat sintactici sau structurali, nu teste de echivalență funcțională.
- Păstrarea exactă a semnăturii rămâne deficitară.
- Controlul la nivel inferior este mai slab decât cel la nivel superior.
- Pozițiile latente nu sunt încă aliniate cu regiuni semantice precum intervalele AST, semnăturile sau structura fluxului de control.
- Rezultatele nu stabilesc corectitudinea pentru reparări practice, refactorizări sau modificări la nivel de depozit.
Referințe citate în articol
Aceste intrări corespund secțiunii numerotate de referințe din versiunea PDF a lucrării.
- 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.
Resurse și reproductibilitate
- Editor
- ACM
- PDF local al textului
- Versiunea finală a manuscrisului furnizată de autor, cu lista definitivă de autori și DOI
- Resursele publicației
- Manuscrisul public, tabelele cu rezultate, figura explicativă și fișierele de citare sunt disponibile aici. Codul implementării și punctele de control nu au fost publicate.
Declarație privind datele
- Sursă
- Un subset preprocesat din CodeParrot Clean, care conține 2,000 de funcții Python.
- Licență
- Acest site nu redistribuie fișiere ale setului de date; reutilizarea rămâne supusă licențelor setului de date CodeParrot din amonte și celor aferente codului-sursă.
- Preprocesare
- Funcțiile Python sunt tokenizate, apoi trunchiate sau completate până la 64 de tokenuri înaintea codificării ierarhice.
- Împărțire
- Posterul raportează un set de evaluare cu 2.000 de funcții; lucrarea publică nu include un manifest imuabil al împărțirii în seturi de antrenare și validare.
- Format
- Funcții-sursă Python, secvențe de tokenuri în stil GPT, secvențe de cod de nivel superior cu lungimea 16 și secvențe de nivel inferior cu lungimea 32.
- Versiune / sumă de control
- Articolul de două pagini nu raportează suma de control a setului de date și nici un identificator imuabil al instantaneului.
- Achiziție
- Pagina publicației nu pune la dispoziție un script public de achiziție.
- Limite de utilizare
- Eșantionul nu este reprezentativ pentru software la scara depozitelor, pentru mai multe limbaje de programare sau pentru sarcini de reparare verificate comportamental.
Versiuni
- Versiunea publicatăACM FSE Companion, 2026
- Oglindă externă cu text integralManuscrisul autorului, sub licența CC BY 4.0, pe Hugging Face
- Deschideți înregistrarea din depozitÎnregistrare Zenodo indexată de OpenAIRE
- Deschideți textul integral din depozitManuscris al autorului pe Zenodo, CC BY 4.0; echivalent textual cu manuscrisul local
- Resursele autoruluiPoster și set de diapozitive
- Înregistrare bibliograficăDBLP
- Deschideți înregistrarea academicăOpenAlex
- Înregistrare în graful de cităriSemantic Scholar
- Text integral distribuit de autorResearchGate
- Rezumat în limbaj accesibilAprecieri
DOI-ul publicat este identificatorul bibliografic principal. Această pagină rămâne unicul URL canonic al proiectului pentru toate versiunile.