Inspectable Control for Structure-Preserving Software Regeneration
Tarkasteltava ohjaus ohjelmiston rakennetta säilyttävässä uudelleengeneroinnissa
Ohjattava koodin osittainen uudelleengenerointi hierarkkisten diskreettien latenttiesitysten avulla.
Lue koko artikkeli HTML-muodossaHaettava teksti kaavoineen, taulukoineen, kuvioineen ja lähdeviitteineen.
Kirjoittajan painovalmis käsikirjoitus, jossa ovat lopullinen kirjoittajaluettelo ja DOI. CC BY 4.0 author manuscript; the ACM DOI page remains the version of record. Julkaisemisen ja uudelleenkäytön ehdot.
Artikkeli 30 sekunnissa
TutkimuskysymysKuinka generatiivinen malli voi muokata ohjelman valittuja osia ja samalla säilyttää sen karkean rakenteen valitut elementit?
Ongelma
Tekoälyavusteisessa koodinmuokkauksessa tarvitaan usein yksi rajattu muutos, jonka aikana ohjelman valitut rakenteet säilyvät ennallaan. Koko ohjelman uudelleengenerointi voi muuttaa asiaan liittymättömiä alueita, eivätkä tokenitason rajoitteet tarjoa karkean tason ohjauspintaa.
Lähestymistapa
Tutkimuksessa 64 tokenin Python-funktiot koodataan hierarkkisella VQ-VAE-mallilla, valitut karkean tason diskreetit koodit lukitaan ja jäljelle jäävissä latenttipositioissa käytetään maskattua diskreettiä generointia koodin paikalliseen uudelleengenerointiin.
Päätulos
Neljän ylätason koodin lukitseminen nostaa jäsennysasteen arvosta 0.453 arvoon 0.591, kun taas lukitsemattomien positioiden muutosaste on edelleen 0.936 ja ehdollisista näytteistä 0.998 säilyy yksilöllisinä.
Miksi tällä on merkitystä
Tulokset osoittavat mitattavan vakauden ja muutosvapauden välisen kompromissin hallittavassa koodin muokkauksessa ja ohjelman osittaisessa uudelleengeneroinnissa. Ne tarjoavat alustavaa näyttöä tarkasteltavasta latentista ohjauskerroksesta, eivät todistetta semanttisesta ekvivalenssista tai toiminnallisesta oikeellisuudesta.
Tiivistelmä
Ohjelmistotekniikan työnkulut, kuten rajoitettu korjaaminen, vaiheittainen tarkentaminen ja rakenteen säilyttävä muokkaaminen, edellyttävät sen hallintaa, mikä muuttuu ja mikä pysyy kiinteänä. Tokenitason generointi tarjoaa näihin toimintoihin heikon ohjauspinnan, sillä se rajoittaa paikallista pintatekstiä niiden karkean tason rakenteellisten invarianttien sijasta, joita ohjelmistotekniikassa usein pyritään säilyttämään. Tutkimme hierarkkisia diskreettejä latenttiesityksiä ohjelmistoartefaktien tarkasteltavana väliesityksenä: hierarkkinen VQ-VAE pakkaa 64 tokenin Python-funktion karkean ja hienon tason diskreeteiksi koodeiksi, ja maskattu diskreetti generointi generoi uudelleen vain valitut sijainnit osittaisten rajoitteiden alaisina. Kun aineistona on 2,000 esikäsiteltyä Python-funktiota, neljän ylimmän tason koodin lukitseminen parantaa jäsennysastetta arvosta 0.453 arvoon 0.591, samalla kun lukitsemattomissa sijainneissa säilyy huomattava muutos (muokkausvapaus, 0.936) ja näytteiden yksilöllisyys on lähes maksimaalinen (monimuotoisuus, 0.998). Kiinteässä karkean tason kontekstissa alemman tason tarkennus on heikompaa mutta edelleen monotonista, mikä tukee hierarkian tulkintaa karkeasta hienojakoiseen. Kokonaisuutena tulokset tarjoavat alustavaa näyttöä käytännöllisestä ohjauskerroksesta, joka tukee ohjelmistoartefaktien rajattua, rakenteen säilyttävää uudelleengenerointia tokenitason yläpuolella.
Julkaisupaikka Proceedings of the 34th ACM International Conference on the Foundations of Software Engineering
Kontribuution tyyppi Piiloavaruuden ohjausmenetelmä
s. 1406–1407Täydentävä posteri
Keskeiset tulokset
| Asetelma | Jäsennysaste | Runko | Allekirjoitus | Lukitsematon muutos |
|---|---|---|---|---|
| Syöte (katkaistu) | 0.994 | 0.994 | 0.994 | — |
| Koodekin rekonstruktio | 0.857 | 0.848 | 0.493 | 0 |
| Ehdoton generointi | 0.453 | 0.08 | 0 | 0.995 |
| Ehdollinen, prefiksi k=4 | 0.591 | 0.295 | 0.061 | 0.936 |
| Ehdollinen, allekirjoitusjakso | 0.6 | 0.302 | 0.063 | ei raportoitu |
Keskeinen tulos. Karkean tason latenttien lukitseminen parantaa syntaktista vakautta tukahduttamatta muokattavan alueen muutoksia; tulos osoittaa rakenteellista ohjattavuutta, ei taattua toiminnallista vastaavuutta.
- Aineisto
- 2 000 esikäsiteltyä Python-funktiota CodeParrot Clean -osajoukosta
- Otoskoko
- 2 000 esikäsiteltyä Python-funktiota; ehdollisten näytteiden yksilöllisyys on 0,998.
- Mittarit
- Jäsennysaste; rungon ja signatuurin säilymisen korvikemittarit; lukitsemattomien sijaintien muutosaste; näytteiden yksilöllisyys ja entropia
- Epävarmuus
- Kaksisivuinen tutkimus raportoi piste-estimaatit ilman luottamusvälejä tai useisiin satunnaissiemeniin perustuvaa tilastollista analyysia.
- Ehdot
- 64 tokenin funktiot, argmax-dekoodaus, 16 ylätason ja 32 alatason koodia; kaikkien koodien lukitseminen palauttaa koodekin rekonstruktion täsmälleen.
Lataa tulokset:CSVJSONMarkdownUlkoinen peilipalvelu:Hugging Face -aineistokortti
PDF ja viittaustiedot
Viittaa tähän artikkeliin BibTeX on suositeltu muoto. Kaikki alla olevat versiot tuotetaan samasta julkaisutietueesta.
@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 -
Viittaustiedostot:APA-tekstiIEEE-tekstiRISCSL-JSONSchema.org JSON-LDOAI-DC XMLOpenAIRE v4 XMLMODS XMLJATS 1.4 -metatieto-XMLKokoteksti JATS 1.4 XML -muodossaRDF TurtleLinkkijoukko (JSON)Linkkijoukko (HTTP)RO-Crate
Kattava opas
Kattava tutkimusopas
Menetelmä
Menetelmä pakkaa lyhyen Python-funktion kahden tason diskreeteiksi koodeiksi, kiinnittää valitut karkean tason sijainnit ja generoi muut sijainnit uudelleen ennen purkamista takaisin koodiksi.
Enkoodaa
Pakkaa 64 tokenin Python-funktio hierarkkisella VQ-VAE:lla 16 ylätason ja 32 alatason koodiksi.
Lukitse
Valitse säilytettävää rakennetta edustavat karkean tason koodipositiot, kuten funktion allekirjoituksen kattava prefiksi.
Generoi uudelleen
Suorita maskattu diskreetti generointi vain lukitsemattomissa positioissa ja dekoodaa valmis hierarkia takaisin lähdekoodiksi.
Tarkastele
Mittaa jäsennysaste, rakenteelliset korvikemittarit, lukitsemattomien sijaintien muutos ja näytteiden yksilöllisyys ennen regeneroinnin hyväksymistä.
Keskeinen ajatus
Ohjaus kohdistetaan tokenien yläpuoliseen opittuun esitykseen: karkean tason latenttipositiot määrittävät eksplisiittiset kohdat, joissa rakenne voidaan jäädyttää samalla kun läheiset toteutuksen yksityiskohdat säilyvät muokattavina.
Ero läheisiin lähestymistapoihin
Kehote- tai token-tason rajoitteet kohdistuvat pintatekstiin. Ehdotettu rajapinta tuo näkyviin karkean ja hienojakoisen tason diskreetit ohjauspisteet ja mittaa niiden tuottamaa vakauden ja vapauden välistä kompromissia.
Mikä on uutta
Työssä esitellään ja arvioidaan tarkasteltava hierarkkinen latenttiohjauskerros ohjelmistoartefaktien rajattuun uudelleengenerointiin.
Kysymykset, joihin tämä artikkeli auttaa vastaamaan
Avaa kysymys saadaksesi artikkeliin perustuvan tiiviin vastauksen. Näytön yksityiskohtaiset rajat esitetään Rajoitukset-osiossa.
Miten tekoäly voi muokata koodia kirjoittamatta kaikkea uudelleen?
Artikkelissa tutkitaan koodin osittaista uudelleengenerointia tokenitason yläpuolella. Hierarkkinen VQ-VAE kuvaa lyhyen Python-funktion karkean ja hienon tason diskreeteiksi koodeiksi; valitut karkean tason sijainnit lukitaan, ja maskattu diskreetti generointi muuttaa ennen purkamista vain jäljelle jääviä latenttisijainteja. Näin saadaan täsmällinen säilytysraja sen sijaan, että koko funktio generoitaisiin uudelleen.
Mitkä menetelmät säilyttävät ohjelman rakenteen koodingeneroinnin aikana?
Työssä testataan hierarkkista diskreettiä latenttiohjausta. Karkean tason latenttipositiot voidaan kiinnittää samalla, kun lukitsemattomat positiot generoidaan uudelleen, minkä jälkeen mitataan jäsentymisaste ja rakenteelliset sijaismittarit. Näyttö koskee lyhyiden Python-funktioiden todennäköisyyspohjaista rakenteellista vakautta; se ei osoita AST:n täsmällistä säilymistä, semanttista ekvivalenssia eikä toiminnallista oikeellisuutta.
Voivatko hierarkkiset diskreetit latenttimuuttujat mahdollistaa koodin paikallisen ohjauksen?
Raportoidussa 2,000 funktion kokeessa neljän ylätason koodin lukitseminen kasvatti jäsennysastetta arvosta 0.453 arvoon 0.591. Samalla lukitsemattomista positioista muuttui 0.936, ja ehdollisista näytteistä 0.998 oli yksilöllisiä. Tulokset tarjoavat alustavaa näyttöä siitä, että karkeat piiloavaruuden rajoitteet voivat säilyttää osan rakenteesta poistamatta paikallisen muokkauksen vapautta tai näytteiden monimuotoisuutta.
Miten koodin generoinnissa voidaan tasapainottaa rakenteellinen vakaus ja monimuotoisuus?
Artikkelissa arvioidaan vakautta ja vapautta yhdessä sen sijaan, että optimoitaisiin vain kelvollisuutta. Karkean tason koodien lukitseminen parantaa syntaktista kelvollisuutta, samalla kun lukitsemattomien sijaintien muutos pysyy suurena ja ehdolliset näytteet lähes täysin yksilöllisinä. Tulos osoittaa testatussa asetelmassa mitattavan vakauden ja muutosvapauden välisen kompromissin, ei yleispätevää optimia.
Miten tämä työ suhteutuu suurten kielimallien avustamaan koodinmuokkaukseen?
Testattu malli on maskattua diskreettiä generointia käyttävä hierarkkinen VQ-VAE, ei suuri kielimalli. Ohjausongelma on silti olennainen LLM-avusteisessa muokkauksessa, sillä tarpeettomat muutokset pyydetyn alueen ulkopuolella ovat käytännön ongelma. Artikkelin kontribuutio on täydentävä latenttiavaruuden mekanismi ja arviointikehys, ei LLM-muokkauksen vertailuasetelma.
Vertailu läheisiin lähestymistapoihin
| Kyvykkyys | Tokenitason ohjaus | Hierarkkinen latenttiohjaus |
|---|---|---|
| Lukitse karkea rakenne | Rajallinen | Sisäänrakennettu karkean tason koodien lukitus |
| Osittainen regenerointi | Hauraat pintatason rajoitteet | Valittujen koodien maskattu uudelleennäytteistys |
| Tarkasteltavat ohjauspisteet | Ei eksplisiittistä välikerrosta | Karkean ja hienon tason diskreetit positiot |
| Tässä artikkelissa esitetty näyttö | Ei arvioitu täydellisenä vertailumenetelmänä | Syntaktisen vakauden ja muokkausvapauden diagnostiikka |
Taulukko kuvaa rajapinnat ja tutkimuksessa mitatun näytön; siinä ei väitetä toiminnallista oikeellisuutta eikä yleispätevää paremmuutta.
Merkitys ja rajaus
Artikkeli on merkityksellisin tutkimukselle, jossa tarvitaan täsmällistä hallintaa siihen, mitä tekoälyavusteinen koodimuunnos saa muuttaa ja minkä ohjelman osien tulee pysyä vakaina.
Ohjattava ja rakenteen säilyttävä koodin generointi
Paikallinen ohjelmankorjaus ja rajattu refaktorointi
Lähdekoodin hierarkkiset diskreetit esitykset
Lähdekoodin maskattu diskreetti generointi
Ohjelmistoartefaktien ohjaus piiloavaruudessa
Rajoitukset
- Tutkimus rajoittuu lyhyisiin Python-funktioihin, jotka on katkaistu 64 tokeniin.
- Arvioinnissa käytetään argmax-dekoodausta ja syntaktisia tai rakenteellisia sijaismittareita toiminnallisen ekvivalenssin testien sijasta.
- Allekirjoituksen täsmällinen säilyttäminen on edelleen puutteellista.
- Alatason ohjaus on ylätason ohjausta heikompaa.
- Piiloavaruuden positioita ei ole vielä kohdistettu semanttisiin alueisiin, kuten AST-jaksoihin, signatuureihin tai ohjausvuon rakenteeseen.
- Tulokset eivät osoita käytännön korjausten, refaktorointien tai repositoriotason muutosten oikeellisuutta.
Artikkelissa siteeratut lähteet
Nämä merkinnät vastaavat artikkelin PDF-version numeroitua References-osiota.
- 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.
Aineistot ja toistettavuus
- Kustantaja
- ACM
- Paikallinen teksti-PDF
- Kirjoittajan painovalmis käsikirjoitus, jossa ovat lopullinen kirjoittajaluettelo ja DOI
- Julkaisuaineistot
- Julkinen käsikirjoitus, tulostaulukot, selittävä kuvio ja viittaustiedostot ovat saatavilla täällä. Toteutuskoodia ja tarkistuspisteitä ei ole julkaistu.
Aineistoseloste
- Lähde
- CodeParrot Clean -aineiston esikäsitelty osajoukko, joka sisältää 2 000 Python-funktiota.
- Lisenssi
- Sivusto ei jakele aineistotiedostoja edelleen; uudelleenkäyttöön sovelletaan edelleen alkuperäisen CodeParrot-aineiston ja lähdekoodin lisenssejä.
- Esikäsittely
- Python-funktiot tokenisoidaan ja katkaistaan tai täydennetään 64 tokenin mittaisiksi ennen hierarkkista koodausta.
- Jako
- Posterissa raportoidaan 2,000 funktion arviointijoukko; julkiseen artikkeliin ei sisälly muuttumatonta opetus- ja validointijaon manifestia.
- Muoto
- Python-lähdekoodin funktiot, GPT-tyyliset tokenijonot, 16 alkion pituiset ylätason koodijonot ja 32 alkion pituiset alatason jonot.
- Versio / tarkistussumma
- Kaksisivuisessa artikkelissa ei ilmoiteta aineiston tarkistussummaa eikä muuttumattoman tilannevedoksen tunnistetta.
- Hankinta
- Julkaisusivun yhteydessä ei ole julkaistu avointa aineistonhakukomentosarjaa.
- Käytön rajat
- Otos ei edusta repositoriotason ohjelmistoja, useita ohjelmointikieliä eikä käyttäytymisen perusteella varmennettuja korjaustehtäviä.
Versiot
- Julkaistu versioACM FSE Companion, 2026
- Kirjoittajan käsikirjoitusTekstimuodossa saavutettava painovalmis käsikirjoitus, jossa ovat lopullinen tekijäluettelo ja DOI
- Ulkoinen kokotekstin peilipalveluTekijän CC BY 4.0 -käsikirjoitus Hugging Facessa
- Avoimen arkiston tietueOpenAIREn indeksoima Zenodo-tietue
- Kirjoittajan aineistotPosteri ja esityskalvot
- Bibliografinen tietueDBLP
- Avaa tieteellinen tietueOpenAlex
- Viittausgraafin tietueSemantic Scholar
- Kirjoittajan jakama kokotekstiResearchGate
- Yleistajuinen tiivistelmäKudos
Julkaistu DOI on ensisijainen bibliografinen tunniste. Tämä sivu säilyy hankkeen ainoana kanonisena URL-osoitteena kaikissa versioissa.