# Inspectable Control for Structure-Preserving Software Regeneration

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

Document language: ms

Kawalan Boleh Periksa untuk Penjanaan Semula Perisian yang Mengekalkan Struktur

Penjanaan semula separa kod secara terkawal menggunakan perwakilan pendam diskret berhierarki.

[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, Moscow, Russian Federation](https://axxx.tech/)

[Baca makalah penuh dalam HTML](https://aogavrilov.com/publications/inspectable-control/full-text/) Teks yang boleh dicari, berserta formula, jadual, rajah dan rujukan.

Manuskrip siap cetak pengarang dengan senarai akhir pengarang dan DOI. CC BY 4.0 author manuscript; the ACM DOI page remains the version of record. [Syarat penyiaran dan penggunaan semula](https://creativecommons.org/licenses/by/4.0/) .

## Makalah dalam 30 saat

**Soalan penyelidikan** Bagaimanakah model generatif dapat mengubah suai bahagian terpilih dalam program sambil mengekalkan unsur pilihan daripada struktur kasarnya?

### Masalah

Pengubahsuaian kod berbantu AI lazimnya memerlukan satu perubahan berbatas sementara struktur atur cara terpilih kekal tetap. Penjanaan semula seluruh atur cara boleh mengganggu rantau yang tidak berkaitan, manakala kekangan aras token tidak menyediakan permukaan kawalan kasar.

### Pendekatan

Kajian ini mengekod fungsi Python sepanjang 64 token dengan VQ-VAE berhierarki, mengunci kod diskret kasar terpilih, dan menggunakan penjanaan diskret bertopeng untuk menjana semula kod secara setempat pada kedudukan pendam yang berbaki.

### Hasil utama

Penguncian empat kod peringkat teratas meningkatkan kadar penghuraian daripada 0.453 kepada 0.591, sementara kedudukan yang tidak dikunci masih berubah pada kadar 0.936 dan sampel bersyarat kekal 0.998 unik.

### Mengapa hal ini penting

Hasil ini menunjukkan tukar ganti kestabilan–kebebasan yang boleh diukur bagi penyuntingan kod terkawal dan penjanaan semula separa program. Hasil tersebut memberikan bukti awal tentang lapisan kawalan ruang pendam yang boleh diperiksa, bukannya bukti kesetaraan semantik atau ketepatan fungsi.

## Abstrak

Aliran kerja kejuruteraan perisian seperti pembaikan terkekang, penghalusan berperingkat dan pengubahsuaian dengan pemeliharaan struktur memerlukan kawalan terhadap perkara yang berubah dan yang kekal tetap. Penjanaan pada aras token ialah permukaan kawalan yang lemah bagi operasi ini kerana ia mengekang teks permukaan setempat, bukannya invarian struktur kasar yang lazimnya hendak dipelihara dalam kejuruteraan perisian. Kami mengkaji pemboleh ubah pendam diskret berhierarki sebagai perwakilan perantaraan boleh diperiksa bagi artifak perisian: VQ-VAE berhierarki memampatkan fungsi Python 64 token kepada kod diskret kasar dan halus, manakala penjanaan diskret bertopeng hanya menjana semula kedudukan terpilih di bawah kekangan separa. Pada 2,000 fungsi Python yang dipraproses, penguncian empat kod aras teratas meningkatkan kadar penghuraian daripada 0.453 kepada 0.591 sambil mengekalkan perubahan yang ketara pada kedudukan tidak terkunci (kebebasan suntingan, 0.936) dan keunikan sampel yang hampir maksimum (kepelbagaian, 0.998). Dalam konteks kasar yang tetap, penghalusan aras bawah lebih lemah tetapi kekal monotonik, sekali gus menyokong pentafsiran hierarki daripada kasar kepada halus. Secara keseluruhan, hasil ini memberikan bukti awal tentang lapisan kawalan praktikal yang menyokong penjanaan semula artifak perisian secara terbatas dengan pemeliharaan struktur pada aras di atas token.

Diterbitkan di Prosiding 34th ACM International Conference on the Foundations of Software Engineering

Jenis sumbangan Kaedah kawalan ruang pendam

5 Julai 2026 pp. 1406–1407 Poster pengiring

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

## Kandungan Pada halaman ini

## Hasil utama

| Tetapan | Kadar penghuraian | Kerangka | Tandatangan | Perubahan tidak terkunci |
| --- | --- | --- | --- | --- |
| Input (dipendekkan) | 0.994 | 0.994 | 0.994 | — |
| Pembinaan semula kodek | 0.857 | 0.848 | 0.493 | 0 |
| Penjanaan tanpa syarat | 0.453 | 0.08 | 0 | 0.995 |
| Bersyarat, awalan k=4 | 0.591 | 0.295 | 0.061 | 0.936 |
| Bersyarat, rentang tandatangan | 0.6 | 0.302 | 0.063 | tidak dilaporkan |

**Hasil utama.** Penguncian pemboleh ubah pendam aras kasar meningkatkan kestabilan sintaksis tanpa menghapuskan perubahan dalam kawasan boleh sunting; hasil ini menunjukkan kawalan struktur, bukannya menjamin kesetaraan fungsi.

Muat turun hasil: [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) Cermin luaran: [Kad set data Hugging Face](https://huggingface.co/datasets/aogavrilov/inspectable-control-results)

## PDF dan petikan

**Petik makalah ini** BibTeX ialah format yang disyorkan. Setiap varian di bawah dijana daripada rekod penerbitan yang sama.

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

Fail sitasi: [Teks APA](https://aogavrilov.com/publications/inspectable-control/citation-apa.txt) [Teks 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) [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) [XML metadata JATS 1.4](https://aogavrilov.com/publications/inspectable-control/metadata.jats.xml) [Teks penuh 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) [Set Pautan (JSON)](https://aogavrilov.com/publications/inspectable-control/linkset.json) [Set Pautan (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)

Panduan lengkap

## Panduan penyelidikan lengkap

## Kaedah

## 

Kaedah ini memampatkan fungsi Python pendek kepada dua aras kod diskret, membekukan kedudukan kasar terpilih dan menjana semula kedudukan selebihnya sebelum menyahkodnya kembali kepada kod.

1. Enkod Mampatkan fungsi Python 64 token kepada 16 kod aras tertinggi dan 32 kod aras rendah menggunakan VQ-VAE berhierarki.
2. Kunci Pilih kedudukan kod aras kasar yang mewakili struktur untuk dikekalkan, seperti awalan yang meliputi rentang tandatangan fungsi.
3. Jana semula Jalankan penjanaan diskret bertopeng hanya pada kedudukan yang tidak dikunci, kemudian nyahkod hierarki yang lengkap kembali kepada kod sumber.
4. Periksa Ukur kadar penghuraian, proksi struktur, perubahan pada kedudukan yang tidak dikunci dan keunikan sampel sebelum menerima hasil penjanaan semula.

![Kod kasar program yang dipilih dikekalkan, manakala kod diskret halus bertopeng dijana semula dan dinyahkod menjadi fungsi Python yang diubah suai.](https://aogavrilov.com/publications/inspectable-control/hierarchical-discrete-latent-code-editing.svg)

**Penyuntingan kod pendam diskret berhierarki mengekalkan struktur kasar program yang dipilih sambil menjana semula kod halus dalam kawasan boleh sunting.* Sumber: [Rajah penerangan ciptaan pengarang berdasarkan kaedah dan hasil yang diterbitkan.](https://doi.org/10.1145/3803437.3807386) . Syarat penggunaan semula: [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) . Atribusi yang dicadangkan: Gavrilov et al. (2026), Inspectable Control for Structure-Preserving Software Regeneration. [Muat turun SVG](https://aogavrilov.com/publications/inspectable-control/hierarchical-discrete-latent-code-editing.svg) .*

### Gagasan utama

Kawalan diterapkan pada perwakilan terpelajar di atas aras token: kedudukan pendam aras kasar mentakrifkan lokasi nyata yang membolehkan struktur dibekukan sementara butiran pelaksanaan berdekatan kekal boleh disunting.

### Perbezaan daripada pendekatan yang berkaitan

Kekangan pada aras gesaan atau token beroperasi pada teks permukaan. Antara muka yang dicadangkan menyediakan titik kawalan diskret kasar dan halus serta mengukur tukar ganti kestabilan–kebebasan yang terhasil.

### Perkara yang baharu

Karya ini memperkenalkan dan menilai lapisan kawalan pendam berhierarki yang boleh diperiksa untuk penjanaan semula artifak perisian secara terbatas.

## Soalan yang dibantu jawab oleh makalah ini

## 

Buka soalan untuk mendapatkan jawapan ringkas yang berasaskan makalah. Sempadan bukti yang terperinci disenaraikan dalam Batasan.

1. Bagaimanakah AI dapat menyunting kod tanpa menulis semula segala-galanya? Makalah ini mengkaji penjanaan semula separa kod pada aras di atas token. VQ-VAE berhierarki memetakan fungsi Python pendek kepada kod diskret kasar dan halus; kedudukan kasar terpilih dikunci, manakala penjanaan diskret bertopeng hanya mengubah kedudukan pendam yang selebihnya sebelum penyahkodan. Pendekatan ini menyediakan sempadan pemeliharaan yang jelas, berbanding dengan menjana semula keseluruhan fungsi.
2. Apakah kaedah yang mengekalkan struktur atur cara semasa penjanaan kod? Karya ini menguji kawalan pendam diskret berhierarki. Kedudukan pendam kasar boleh ditetapkan sementara kedudukan yang tidak dikunci dijana semula, lalu kadar penghuraian dan proksi struktur diukur. Bukti tersebut berkaitan dengan kestabilan struktur berkebarangkalian pada fungsi Python pendek; bukti ini tidak menetapkan pemeliharaan AST secara tepat, kesetaraan semantik, atau ketepatan fungsian.
3. Bolehkah pemboleh ubah pendam diskret berhierarki memberikan kawalan setempat terhadap kod? Dalam eksperimen 2,000 fungsi yang dilaporkan, penguncian empat kod peringkat teratas meningkatkan kadar penghuraian daripada 0.453 kepada 0.591. Pada masa yang sama, 0.936 daripada kedudukan yang tidak dikunci berubah dan 0.998 daripada sampel bersyarat adalah unik. Hasil ini merupakan bukti awal bahawa kekangan pendam berbutir kasar dapat memelihara sebahagian struktur tanpa menghapuskan kebebasan suntingan setempat atau kepelbagaian sampel.
4. Bagaimanakah penjanaan kod dapat mengimbangi kestabilan struktur dengan kepelbagaian? Makalah ini menilai kestabilan dan kebebasan secara bersama, bukannya mengoptimumkan kesahan semata-mata. Penguncian kod kasar meningkatkan kesahan sintaksis, sementara perubahan pada kedudukan tidak terkunci kekal tinggi dan sampel bersyarat hampir kesemuanya unik. Hasil tersebut menunjukkan tukar ganti kestabilan–kebebasan yang boleh diukur dalam konfigurasi yang diuji, bukannya optimum universal.
5. Bagaimanakah karya ini berkaitan dengan penyuntingan kod berbantukan LLM? Model yang diuji ialah VQ-VAE berhierarki dengan penjanaan diskret bertopeng, bukannya model bahasa besar. Walau bagaimanapun, masalah kawalan ini relevan dengan penyuntingan berbantukan LLM kerana perubahan yang tidak perlu di luar kawasan yang diminta merupakan kebimbangan praktikal. Makalah ini menyumbangkan mekanisme ruang pendam dan kerangka penilaian yang saling melengkapi, bukannya penanda aras penyuntingan LLM.

## Perbandingan dengan pendekatan yang berkaitan

## 

| Keupayaan | Kawalan aras token | Kawalan pendam berhierarki |
| --- | --- | --- |
| Bekukan struktur kasar | Terhad | Penguncian kod kasar natif |
| Penjanaan semula separa | Kekangan permukaan yang rapuh | Pensampelan semula bertopeng bagi kod terpilih |
| Titik kawalan yang boleh diperiksa | Tiada lapisan perantaraan yang eksplisit | Kedudukan diskret aras kasar dan halus |
| Bukti dalam makalah ini | Tidak dinilai sebagai garis dasar yang lengkap | Diagnostik kestabilan sintaksis dan kebebasan suntingan |

Jadual ini menghuraikan antara muka dan bukti terukur kajian; jadual ini tidak mendakwa ketepatan fungsian atau keunggulan sejagat.

## Kerelevanan dan skop

## 

Makalah ini paling relevan bagi kerja yang memerlukan kawalan jelas terhadap perkara yang boleh diubah oleh transformasi kod berbantukan AI serta bahagian program yang perlu kekal stabil.

1. Penjanaan kod terkawal dengan pemeliharaan struktur
2. Pembaikan atur cara setempat dan pemfaktoran semula terbatas
3. Perwakilan diskret berhierarki untuk kod sumber
4. Penjanaan diskret bertopeng untuk kod sumber
5. Kawalan pendam bagi artifak perisian

## Batasan

## 

- Kajian ini terbatas kepada fungsi Python pendek yang dipangkas kepada 64 token.
- Penilaian menggunakan penyahkodan argmax serta proksi sintaksis atau struktur, bukannya ujian kesetaraan fungsi.
- Pengekalan tandatangan secara tepat masih lemah.
- Kawalan peringkat bawah lebih lemah daripada kawalan peringkat atas.
- Kedudukan pendam masih belum dijajarkan dengan kawasan semantik seperti rentang AST, tandatangan atau struktur aliran kawalan.
- Hasil ini tidak membuktikan ketepatan bagi pembaikan praktikal, pemfaktoran semula atau perubahan pada aras repositori.

## Rujukan yang dipetik dalam makalah

## 

Entri ini sepadan dengan bahagian Rujukan bernombor dalam PDF makalah.

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 .

## Sumber dan kebolehulangan

## 

### Pernyataan data

## Versi

## 

1. **Versi terbitan** [ACM FSE Companion, 2026](https://doi.org/10.1145/3803437.3807386)
2. **Manuskrip pengarang** [Manuskrip siap cetak yang teksnya boleh dicapai, berserta senarai akhir pengarang dan DOI](https://aogavrilov.com/publications/inspectable-control/paper.pdf)
3. **Cermin teks penuh luaran** [Manuskrip pengarang berlesen CC BY 4.0 di Hugging Face](https://huggingface.co/datasets/aogavrilov/inspectable-control-results/resolve/main/paper.pdf)
4. **Buka rekod repositori** [Rekod Zenodo yang diindeks oleh OpenAIRE](https://zenodo.org/records/21605395)
5. **Buka teks penuh repositori** [Manuskrip pengarang Zenodo CC BY 4.0; teksnya setara dengan manuskrip setempat](https://zenodo.org/records/21605395/files/fse2026-posters-final11%20%284%29.pdf?download=1)
6. **Sumber pengarang** [Poster dan set slaid](https://aogavrilov.com/publications/inspectable-control/media/)
7. **Rekod bibliografi** [DBLP](https://dblp.org/rec/conf/sigsoft/GavrilovGMMM26)
8. **Buka rekod ilmiah** [OpenAlex](https://openalex.org/W7169573479)
9. **Rekod graf sitasi** [Semantic Scholar](https://www.semanticscholar.org/paper/93c3de037596ce177d9d882d214ccad5c5405b00)
10. **Teks penuh yang dikongsi pengarang** [ResearchGate](https://www.researchgate.net/publication/410435483_Inspectable_Control_for_Structure-Preserving_Software_Regeneration)
11. **Ringkasan bahasa mudah** [Kudos](https://www.growkudos.com/publications/10.1145%252F3803437.3807386/reader)

DOI yang diterbitkan ialah pengecam bibliografi utama. Halaman ini kekal sebagai satu-satunya URL kanonik projek bagi semua versi.

## Penerbitan berkaitan

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

Baca [Penyuntingan kod terkawal](https://aogavrilov.com/ms/projects/discrete-latent-generation/) panduan penyelidikan. [Perihal pengarang](https://aogavrilov.com/about/) .

### Nota penyelidikan terfokus

Jawapan khusus mengikut niat, dengan sempadan bukti dan pautan kembali kepada makalah ini.

- [Pengubahsuaian kod setempat menggunakan model generatif](https://aogavrilov.com/ms/research-notes/localized-code-modification-generative-models/)
- [Penjanaan kod berkekangan untuk kejuruteraan perisian](https://aogavrilov.com/ms/research-notes/constrained-code-generation-software-engineering/)
- [Pemfaktoran semula berbantu AI: kaedah dan bukti](https://aogavrilov.com/ms/research-notes/ai-assisted-refactoring-evidence/)
- [Penjanaan kod yang boleh diramal memerlukan kontrak pengekalan](https://aogavrilov.com/ms/research-notes/predictable-code-generation-preservation-contract/)
