# Inspectable Control for Structure-Preserving Software Regeneration

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

Document language: fi

Tarkasteltava ohjaus ohjelmiston rakennetta säilyttävässä uudelleengeneroinnissa

Ohjattava koodin osittainen uudelleengenerointi hierarkkisten diskreettien latenttiesitysten avulla.

[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, Moskova, Venäjän federaatio](https://axxx.tech/)

[Lue koko artikkeli HTML-muodossa](https://aogavrilov.com/publications/inspectable-control/full-text/) Haettava 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](https://creativecommons.org/licenses/by/4.0/) .

## Artikkeli 30 sekunnissa

**Tutkimuskysymys** Kuinka 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ä

5. heinäkuuta 2026 s. 1406–1407 Täydentävä posteri

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

## Sisältö Tällä sivulla

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

Lataa tulokset: [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) Ulkoinen peilipalvelu: [Hugging Face -aineistokortti](https://huggingface.co/datasets/aogavrilov/inspectable-control-results)

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

Viittaustiedostot: [APA-teksti](https://aogavrilov.com/publications/inspectable-control/citation-apa.txt) [IEEE-teksti](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) [OAI-DC XML](https://aogavrilov.com/publications/inspectable-control/oai-dc.xml) [OpenAIRE v4 XML](https://aogavrilov.com/publications/inspectable-control/openaire.xml) [MODS XML](https://aogavrilov.com/publications/inspectable-control/mods.xml) [JATS 1.4 -metatieto-XML](https://aogavrilov.com/publications/inspectable-control/metadata.jats.xml) [Kokoteksti JATS 1.4 XML -muodossa](https://aogavrilov.com/publications/inspectable-control/full-text/article.jats.xml) [RDF Turtle](https://aogavrilov.com/publications/inspectable-control/metadata.ttl) [Linkkijoukko (JSON)](https://aogavrilov.com/publications/inspectable-control/linkset.json) [Linkkijoukko (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)

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.

1. Enkoodaa Pakkaa 64 tokenin Python-funktio hierarkkisella VQ-VAE:lla 16 ylätason ja 32 alatason koodiksi.
2. Lukitse Valitse säilytettävää rakennetta edustavat karkean tason koodipositiot, kuten funktion allekirjoituksen kattava prefiksi.
3. Generoi uudelleen Suorita maskattu diskreetti generointi vain lukitsemattomissa positioissa ja dekoodaa valmis hierarkia takaisin lähdekoodiksi.
4. Tarkastele Mittaa jäsennysaste, rakenteelliset korvikemittarit, lukitsemattomien sijaintien muutos ja näytteiden yksilöllisyys ennen regeneroinnin hyväksymistä.

![Valitut karkean tason ohjelmakoodit pidetään kiinteinä, kun taas peitetyt hienojakoiset diskreetit koodit generoidaan uudelleen ja puretaan muokatuksi Python-funktioksi.](https://aogavrilov.com/publications/inspectable-control/hierarchical-discrete-latent-code-editing.svg)

**Hierarkkisten diskreettien latenttikoodien muokkaus säilyttää ohjelman karkean rakenteen valitut osat ja generoi samalla uudelleen muokattavan alueen hienojakoiset koodit.* Lähde: [Kirjoittajan laatima, julkaistuun menetelmään ja tuloksiin perustuva selittävä kaavio.](https://doi.org/10.1145/3803437.3807386) . Uudelleenkäytön ehdot: [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) . Ehdotettu lähdemerkintä: Gavrilov et al. (2026), Inspectable Control for Structure-Preserving Software Regeneration. [Lataa SVG](https://aogavrilov.com/publications/inspectable-control/hierarchical-discrete-latent-code-editing.svg) .*

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

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

1. Ohjattava ja rakenteen säilyttävä koodin generointi
2. Paikallinen ohjelmankorjaus ja rajattu refaktorointi
3. Lähdekoodin hierarkkiset diskreetit esitykset
4. Lähdekoodin maskattu diskreetti generointi
5. 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.

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 .

## Aineistot ja toistettavuus

## 

### Aineistoseloste

## Versiot

## 

1. **Julkaistu versio** [ACM FSE Companion, 2026](https://doi.org/10.1145/3803437.3807386)
2. **Kirjoittajan käsikirjoitus** [Tekstimuodossa saavutettava painovalmis käsikirjoitus, jossa ovat lopullinen tekijäluettelo ja DOI](https://aogavrilov.com/publications/inspectable-control/paper.pdf)
3. **Ulkoinen kokotekstin peilipalvelu** [Tekijän CC BY 4.0 -käsikirjoitus Hugging Facessa](https://huggingface.co/datasets/aogavrilov/inspectable-control-results/resolve/main/paper.pdf)
4. **Avoimen arkiston tietue** [OpenAIREn indeksoima Zenodo-tietue](https://zenodo.org/records/21605395)
5. **Avaa arkiston kokoteksti** [Zenodossa julkaistu tekijän käsikirjoitus lisenssillä CC BY 4.0; tekstisisällöltään sama kuin paikallinen käsikirjoitus](https://zenodo.org/records/21605395/files/fse2026-posters-final11%20%284%29.pdf?download=1)
6. **Kirjoittajan aineistot** [Posteri ja esityskalvot](https://aogavrilov.com/publications/inspectable-control/media/)
7. **Bibliografinen tietue** [DBLP](https://dblp.org/rec/conf/sigsoft/GavrilovGMMM26)
8. **Avaa tieteellinen tietue** [OpenAlex](https://openalex.org/W7169573479)
9. **Viittausgraafin tietue** [Semantic Scholar](https://www.semanticscholar.org/paper/93c3de037596ce177d9d882d214ccad5c5405b00)
10. **Kirjoittajan jakama kokoteksti** [ResearchGate](https://www.researchgate.net/publication/410435483_Inspectable_Control_for_Structure-Preserving_Software_Regeneration)
11. **Yleistajuinen tiivistelmä** [Kudos](https://www.growkudos.com/publications/10.1145%252F3803437.3807386/reader)

Julkaistu DOI on ensisijainen bibliografinen tunniste. Tämä sivu säilyy hankkeen ainoana kanonisena URL-osoitteena kaikissa versioissa.

## Aiheeseen liittyvä julkaisu

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

Lue [Ohjattava koodin muokkaus](https://aogavrilov.com/fi/projects/discrete-latent-generation/) tutkimusopas. [Tietoa kirjoittajasta](https://aogavrilov.com/about/) .

### Kohdennetut tutkimusmuistiinpanot

Tavoitekohtaisia vastauksia, joissa näytön rajat ilmaistaan ja joista on linkit takaisin tähän artikkeliin.

- [Paikallinen koodinmuokkaus generatiivisilla malleilla](https://aogavrilov.com/fi/research-notes/localized-code-modification-generative-models/)
- [Rajoitettu koodin generointi ohjelmistotekniikassa](https://aogavrilov.com/fi/research-notes/constrained-code-generation-software-engineering/)
- [Tekoälyavusteinen refaktorointi: menetelmät ja näyttö](https://aogavrilov.com/fi/research-notes/ai-assisted-refactoring-evidence/)
- [Ennakoitava koodin generointi edellyttää säilyttämissopimusta](https://aogavrilov.com/fi/research-notes/predictable-code-generation-preservation-contract/)
