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.

Alexey Gavrilov1Alan-Barsag Gazzaev1Mikhail Mozikov2Ilya Makarov2Sergey Muravyov1

  1. ITMO University, Saint Petersburg, Russian Federation
  2. AXXX, Moscow, Russian Federation

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

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

Kongsi makalah iniKongsi

Hasil utama

Hasil utama Kawalan yang Boleh Diperiksa untuk Penjanaan Semula Perisian yang Memelihara Struktur
TetapanKadar penghuraianKerangkaTandatanganPerubahan tidak terkunci
Input (dipendekkan)0.9940.9940.994
Pembinaan semula kodek0.8570.8480.4930
Penjanaan tanpa syarat0.4530.0800.995
Bersyarat, awalan k=40.5910.2950.0610.936
Bersyarat, rentang tandatangan0.60.3020.063tidak 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.

PDF dan petikan

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

Buka PDF
@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},
}
Muat turun .bib

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

DOI: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.
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..Syarat penggunaan semula: CC BY 4.0.Atribusi yang dicadangkan: Gavrilov et al. (2026), Inspectable Control for Structure-Preserving Software Regeneration. Muat turun 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

Perbandingan berfakta antara Kawalan yang Boleh Diperiksa untuk Penjanaan Semula Perisian yang Memelihara Struktur dengan pendekatan berkaitan
KeupayaanKawalan aras tokenKawalan pendam berhierarki
Bekukan struktur kasarTerhadPenguncian kod kasar natif
Penjanaan semula separaKekangan permukaan yang rapuhPensampelan semula bertopeng bagi kod terpilih
Titik kawalan yang boleh diperiksaTiada lapisan perantaraan yang eksplisitKedudukan diskret aras kasar dan halus
Bukti dalam makalah iniTidak dinilai sebagai garis dasar yang lengkapDiagnostik 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

Lihat batasan dan sempadan bukti

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

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

  1. Sumber pengarangPoster dan set slaid
  2. Rekod bibliografiDBLP
  3. Buka rekod ilmiahOpenAlex
  4. Rekod graf sitasiSemantic Scholar
  5. Teks penuh yang dikongsi pengarangResearchGate
  6. Ringkasan bahasa mudahKudos

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