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.

Alexey Gavrilov1Alan-Barsag Gazzaev1Mikhail Mozikov2Ilya Makarov2Sergey Muravyov1

  1. ITMO University, Saint Petersburg, Russian Federation
  2. AXXX, Moscova, Federația Rusă

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

DOI https://doi.org/10.1145/3803437.3807386

Distribuiți această lucrareDistribuiți

Rezultate principale

Rezultatele principale ale Controlului inspectabil pentru regenerarea software cu conservarea structurii
ConfigurațieRata de analizare sintacticăSchemă structuralăSemnăturăModificare deblocată
Intrare (trunchiată)0.9940.9940.994
Reconstrucția codecului0.8570.8480.4930
Generare necondiționată0.4530.0800.995
Condiționat, prefix k=40.5910.2950.0610.936
Condiționat, intervalul semnăturii0.60.3020.063neraportat

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.

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.

Deschideți PDF-ul
@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},
}
Descărcați .bib

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

DOI:https://doi.org/10.1145/3803437.3807386

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.

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

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

  3. Regenerați

    Rulați generarea discretă mascată numai asupra pozițiilor deblocate și decodificați ierarhia completată înapoi în cod-sursă.

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

Codurile grosiere selectate ale programului rămân fixe, în timp ce codurile discrete fine mascate sunt regenerate și decodate într-o funcție Python modificată.
Editarea ierarhică a codurilor latente discrete păstrează structura grosieră selectată a programului, regenerând în același timp codurile fine din regiunea editabilă.Sursă: Diagramă explicativă creată de autor pe baza metodei și rezultatelor publicate..Condiții de reutilizare: CC BY 4.0.Citare sugerată: Gavrilov et al. (2026), Inspectable Control for Structure-Preserving Software Regeneration. Descărcați SVG.

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.

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

  2. 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ă.

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

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

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

Comparație factuală între Controlul inspectabil pentru regenerarea software cu conservarea structurii și abordările înrudite
CapabilitateControl la nivel de tokenControl latent ierarhic
Fixați structura grosierăLimitatBlocarea nativă a codurilor grosiere
Regenerare parțialăConstrângeri fragile de suprafațăReeșantionarea mascată a codurilor selectate
Puncte de control inspectabileFără strat intermediar explicitPoziții discrete grosiere și fine
Dovezile din această lucrareNu 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.

  1. Generare controlabilă de cod cu conservarea structurii

  2. Repararea localizată a programelor și refactorizarea delimitată

  3. Reprezentări discrete ierarhice pentru codul-sursă

  4. Generare discretă mascată pentru codul-sursă

  5. Control latent pentru artefacte software

Consultați limitările și limitele dovezilor

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.

  1. Ali Razavi, Aaron van den Oord, Oriol Vinyals. . Generating Diverse High-Fidelity Images with VQ-VAE-2. Advances in Neural Information Processing Systems.
  2. 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.
  3. 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.
  4. Shraddha Barke, Michael B. James, Nadia Polikarpova. . Grounded Copilot: How Programmers Interact with Code-Generating Models. 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. . 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
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

  1. Versiunea publicatăACM FSE Companion, 2026
  2. Deschideți înregistrarea din depozitÎnregistrare Zenodo indexată de OpenAIRE
  3. Înregistrare bibliograficăDBLP
  4. Deschideți înregistrarea academicăOpenAlex
  5. Înregistrare în graful de cităriSemantic Scholar
  6. Text integral distribuit de autorResearchGate
  7. Rezumat în limbaj accesibilAprecieri

DOI-ul publicat este identificatorul bibliografic principal. Această pagină rămâne unicul URL canonic al proiectului pentru toate versiunile.