Inspectable Control for Structure-Preserving Software Regeneration
Kawalan Boleh Periksa untuk Penjanaan Semula Perisian yang Mengekalkan Struktur
Penjanaan semula separa kod secara terkawal menggunakan perwakilan pendam diskret berhierarki.
Baca makalah penuh dalam HTMLTeks 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.
Makalah dalam 30 saat
Soalan penyelidikanBagaimanakah 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
pp. 1406–1407Poster pengiring
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.
- Set data
- 2,000 fungsi Python yang dipraproses daripada subset CodeParrot Clean
- Saiz sampel
- 2,000 fungsi Python yang dipraproses; keunikan sampel bersyarat ialah 0.998.
- Metrik
- Kadar penghuraian; Proksi pemeliharaan kerangka dan tandatangan; Kadar perubahan kedudukan yang tidak dikunci; Keunikan dan entropi sampel
- Ketidakpastian
- Kajian dua halaman ini melaporkan anggaran titik tanpa selang keyakinan atau analisis statistik berbilang benih.
- Syarat
- Fungsi 64 token, penyahkodan argmax, 16 kod peringkat atas dan 32 kod peringkat bawah; penguncian penuh memulihkan pembinaan semula kodek dengan tepat.
Muat turun hasil:CSVJSONMarkdownCermin luaran:Kad set data Hugging Face
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},
}
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 -
Fail sitasi:Teks APATeks IEEERISCSL-JSONSchema.org JSON-LDOAI-DC XMLOpenAIRE v4 XMLMODS XMLXML metadata JATS 1.4Teks penuh JATS 1.4 XMLRDF TurtleSet Pautan (JSON)Set Pautan (HTTP)RO-Crate
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.
Enkod
Mampatkan fungsi Python 64 token kepada 16 kod aras tertinggi dan 32 kod aras rendah menggunakan VQ-VAE berhierarki.
Kunci
Pilih kedudukan kod aras kasar yang mewakili struktur untuk dikekalkan, seperti awalan yang meliputi rentang tandatangan fungsi.
Jana semula
Jalankan penjanaan diskret bertopeng hanya pada kedudukan yang tidak dikunci, kemudian nyahkod hierarki yang lengkap kembali kepada kod sumber.
Periksa
Ukur kadar penghuraian, proksi struktur, perubahan pada kedudukan yang tidak dikunci dan keunikan sampel sebelum menerima hasil penjanaan semula.
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.
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.
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.
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.
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.
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.
Penjanaan kod terkawal dengan pemeliharaan struktur
Pembaikan atur cara setempat dan pemfaktoran semula terbatas
Perwakilan diskret berhierarki untuk kod sumber
Penjanaan diskret bertopeng untuk kod sumber
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.
- 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.
Sumber dan kebolehulangan
- Penerbit
- ACM
- Sumber penerbitan
- Manuskrip awam, jadual hasil, rajah penerangan dan fail petikan tersedia di sini. Kod pelaksanaan dan titik semak tidak dikeluarkan kepada umum.
Pernyataan data
- Sumber
- Subset CodeParrot Clean yang dipraproses dan mengandungi 2,000 fungsi Python.
- Lesen
- Laman ini tidak mengedarkan semula sebarang fail set data; penggunaan semula tetap tertakluk pada lesen set data CodeParrot huluan dan lesen kod sumber.
- Prapemprosesan
- Fungsi Python ditokenkan, kemudian dipenggal atau dipadatkan kepada 64 token sebelum pengekodan berhierarki.
- Pisahkan
- Poster tersebut melaporkan set penilaian 2,000 fungsi; manifes pembahagian latihan/pengesahan yang tidak boleh diubah tidak disertakan dalam makalah awam.
- Format
- Fungsi sumber Python, jujukan token gaya GPT, jujukan kod aras atas sepanjang 16, dan jujukan aras bawah sepanjang 32.
- Versi / hasil tambah semak
- Hasil tambah semak set data dan pengecam petikan keadaan tak boleh ubah tidak dilaporkan dalam makalah dua halaman tersebut.
- Pemerolehan
- Skrip pemerolehan awam tidak dikeluarkan bersama halaman penerbitan.
- Batas penggunaan
- Sampel ini tidak mewakili perisian pada skala repositori, berbilang bahasa pengaturcaraan atau tugas pembaikan yang disahkan berdasarkan tingkah laku.
Versi
- Versi terbitanACM FSE Companion, 2026
- Cermin teks penuh luaranManuskrip pengarang berlesen CC BY 4.0 di Hugging Face
- Buka rekod repositoriRekod Zenodo yang diindeks oleh OpenAIRE
- Buka teks penuh repositoriManuskrip pengarang Zenodo CC BY 4.0; teksnya setara dengan manuskrip setempat
- Sumber pengarangPoster dan set slaid
- Rekod bibliografiDBLP
- Buka rekod ilmiahOpenAlex
- Rekod graf sitasiSemantic Scholar
- Teks penuh yang dikongsi pengarangResearchGate
- Ringkasan bahasa mudahKudos
DOI yang diterbitkan ialah pengecam bibliografi utama. Halaman ini kekal sebagai satu-satunya URL kanonik projek bagi semua versi.