Inspectable Control for Structure-Preserving Software Regeneration

Udhibiti Unaokaguliwa kwa Uzalishaji Upya wa Programu Unaohifadhi Muundo

Uzalishaji upya unaodhibitika wa sehemu za msimbo kwa kutumia viwakilishi fiche tambufu vya kihierarkia.

Alexey Gavrilov1Alan-Barsag Gazzaev1Mikhail Mozikov2Ilya Makarov2Sergey Muravyov1

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

Soma makala kamili katika HTMLMatini inayotafutika yenye fomula, majedwali, vielelezo na marejeleo.

Muswada wa mwandishi ulio tayari kuchapishwa wenye orodha ya mwisho ya waandishi na DOI. CC BY 4.0 author manuscript; the ACM DOI page remains the version of record. Masharti ya uchapishaji na matumizi upya.

Muhtasari wa makala kwa sekunde 30

Swali la utafitiMuundo zalishi unawezaje kurekebisha sehemu teule za programu huku ukihifadhi vipengele vilivyochaguliwa vya muundo wake wa jumla?

Tatizo

Urekebishaji wa msimbo unaosaidiwa na AI mara nyingi huhitaji badiliko moja lenye mipaka huku muundo teule wa programu ukibaki thabiti. Kuzalisha upya programu nzima kunaweza kuvuruga maeneo yasiyohusika, na vizuizi vya kiwango cha tokeni havitoi kiolesura cha udhibiti wa muundo wa jumla.

Mkabala

Utafiti husimba vitendakazi vya Python vyenye tokeni 64 kwa VQ-VAE ya kihierarkia, hufunga misimbo tambufu teule ya ngazi ya jumla, na hutumia uzalishaji tambufu wenye ufichaji kuzalisha upya msimbo katika nafasi fiche zilizosalia.

Tokeo kuu

Kufunga misimbo minne ya ngazi ya juu huongeza kiwango cha uchanganuzi kutoka 0.453 hadi 0.591, huku nafasi zisizofungwa zikiendelea kubadilika kwa kiwango cha 0.936 na sampuli zenye masharti zikibaki za kipekee kwa kiwango cha 0.998.

Umuhimu wake

Matokeo yanaonyesha uwiano unaopimika kati ya uthabiti na uhuru katika uhariri wa msimbo unaodhibitika na uzalishaji upya wa sehemu ya programu. Yanatoa ushahidi wa awali wa safu ya udhibiti wa nafasi fiche inayoweza kukaguliwa, si uthibitisho wa ulinganifu wa kisemantiki wala usahihi wa kiutendaji.

Muhtasari

Mitiririko ya kazi ya uhandisi wa programu, kama vile urekebishaji wenye vizuizi, uboreshaji wa hatua kwa hatua na urekebishaji unaohifadhi muundo, huhitaji udhibiti wa kinachobadilika na kinachobaki thabiti. Uzalishaji katika kiwango cha tokeni ni kiolesura dhaifu cha udhibiti kwa shughuli hizi kwa sababu huwekea mipaka matini ya eneo husika badala ya sifa zisizobadilika za muundo wa jumla ambazo uhandisi wa programu mara nyingi hulenga kuhifadhi. Tunachunguza viwakilishi fiche tambufu vya kihierarkia kama uwakilishi wa kati unaoweza kukaguliwa kwa vizalia vya programu: VQ-VAE ya kihierarkia hubana kitendakazi cha Python chenye tokeni 64 kuwa misimbo tambufu ya jumla na ya kina, kisha uzalishaji tambufu wenye ufichaji huzalisha upya nafasi teule pekee chini ya vizuizi vya sehemu. Katika vitendakazi 2,000 vya Python vilivyochakatwa awali, kufunga misimbo minne ya ngazi ya juu huongeza kiwango cha uchanganuzi kutoka 0.453 hadi 0.591, huku mabadiliko makubwa yakibaki katika nafasi zisizofungwa (uhuru wa uhariri, 0.936) na upekee wa sampuli ukikaribia upeo (uanuwai, 0.998). Katika muktadha wa jumla uliowekwa, uboreshaji wa ngazi ya chini ni dhaifu zaidi lakini hubaki wa mwelekeo mmoja, jambo linalounga mkono tafsiri ya hierarkia kutoka jumla hadi kina. Kwa ujumla, matokeo haya yanatoa ushahidi wa awali wa safu ya udhibiti inayoweza kutumika, inayowezesha uzalishaji upya wa vizalia vya programu wenye mipaka na unaohifadhi muundo juu ya kiwango cha tokeni.

Imechapishwa katika Proceedings of the 34th ACM International Conference on the Foundations of Software Engineering

Aina ya mchango Mbinu ya udhibiti wa nafasi fiche

kur. 1406–1407Bango andamani

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

Shiriki makala hiiShiriki

Matokeo makuu

Matokeo makuu ya Udhibiti Unaokaguliwa kwa Uzalishaji Upya wa Programu Unaohifadhi Muundo
MpangilioKiwango cha uchanganuzi wa kisintaksiaKiunziSahihiMabadiliko yasiyofungwa
Ingizo (limekatwa)0.9940.9940.994
Ujengaji upya wa kodeki0.8570.8480.4930
Uzalishaji usio na sharti0.4530.0800.995
Yenye sharti, kiambishi-awali k=40.5910.2950.0610.936
Yenye sharti, eneo la saini0.60.3020.063haikuripotiwa

Tokeo kuu. Kufunga nafasi fiche za kiwango jumla huimarisha uthabiti wa kisintaksia bila kuzuia mabadiliko katika eneo linaloweza kuhaririwa; matokeo yanaonyesha udhibiti wa muundo, wala si ulinganifu wa kiutendaji uliohakikishwa.

Seti ya data
vitendakazi 2,000 vya Python vilivyochakatwa awali kutoka seti ndogo ya CodeParrot Clean
Ukubwa wa sampuli
vitendakazi 2,000 vya Python vilivyochakatwa awali; upekee wa sampuli zenye masharti ni 0.998.
Vipimo
Kiwango cha uchanganuzi wa kisintaksia; viashiria mbadala vya uhifadhi wa kiunzi na saini; kiwango cha mabadiliko katika nafasi zisizofungwa; upekee na entropia ya sampuli
Kutokuwa na uhakika
Utafiti huu wa kurasa mbili unaripoti makadirio ya nukta bila vipindi vya kutegemewa wala uchanganuzi wa kitakwimu unaotumia mbegu nyingi.
Masharti
vitendakazi vyenye tokeni 64, usimbuaji wa argmax, misimbo 16 ya ngazi ya juu na 32 ya ngazi ya chini; kufunga kikamilifu hurejesha kwa usahihi ujenzi upya wa kodeki.

PDF na rejeleo

Rejelea makala hii BibTeX ndiyo muundo unaopendekezwa. Kila toleo lililo hapa chini huzalishwa kutoka rekodi ileile ya chapisho.

Fungua 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},
}
Pakua .bib

Faili za marejeleo:Matini ya APAMatini ya IEEERISCSL-JSONSchema.org JSON-LDOAI-DC XMLOpenAIRE v4 XMLMODS XMLXML ya metadata ya JATS 1.4JATS 1.4 XML ya matini kamiliRDF TurtleSeti ya Viungo (JSON)Seti ya Viungo (HTTP)RO-Crate

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

Mwongozo kamili

Mwongozo kamili wa utafiti

Mbinu

Mbinu hubana kitendakazi kifupi cha Python kuwa ngazi mbili za misimbo tambufu, hufunga nafasi teule za jumla na kuzalisha upya nafasi zilizosalia kabla ya kuzisimbua kuwa msimbo.

  1. Simba

    Bana kitendakazi cha Python chenye tokeni 64 kuwa misimbo 16 ya kiwango cha juu na misimbo 32 ya kiwango cha chini kwa kutumia VQ-VAE ya ngazi.

  2. Funga

    Chagua nafasi za msimbo za kiwango jumla zinazowakilisha muundo unaopaswa kuhifadhiwa, kama vile kiambishi-awali kinachofunika eneo la saini ya kitendakazi.

  3. Zalisha upya

    Tekeleza uzalishaji bainifu uliofichwa kwenye nafasi ambazo hazijafungwa pekee, kisha simbua daraja lililokamilika kurudi kuwa msimbo chanzo.

  4. Kagua

    Pima kiwango cha uchanganuzi wa kisintaksia, viashiria mbadala vya muundo, mabadiliko katika nafasi zisizofungwa na upekee wa sampuli kabla ya kukubali uzalishaji upya.

Misimbo teule ya jumla ya programu hubaki bila kubadilika, huku misimbo bainifu ya kidijitali yenye vinyago ikizalishwa upya na kusimbuliwa kuwa kitendakazi cha Python kilichorekebishwa.
Uhariri wa misimbo fiche tambufu ya kihierarkia huhifadhi muundo teule wa jumla wa programu huku ukizalisha upya misimbo ya kina katika eneo linaloweza kuhaririwa.Chanzo: Mchoro wa ufafanuzi uliotengenezwa na mwandishi kwa kuzingatia mbinu na matokeo yaliyochapishwa..Masharti ya matumizi tena: CC BY 4.0.Nukuu inayopendekezwa: Gavrilov et al. (2026), Inspectable Control for Structure-Preserving Software Regeneration. Pakua SVG.

Wazo kuu

Udhibiti hutumika kwenye uwakilishi uliojifunzwa ulio juu ya tokeni: nafasi fiche za kiwango jumla hubainisha wazi sehemu ambazo muundo unaweza kugandishwa huku maelezo ya utekelezaji yaliyo karibu yakiendelea kuharirika.

Tofauti na mikabala inayokaribiana

Vikwazo vya kiwango cha agizo au tokeni hutumika kwenye matini ya juu juu. Kiolesura kinachopendekezwa huweka wazi sehemu bainifu za udhibiti, kuanzia pana hadi mahususi, na hupima mlinganisho unaotokea kati ya uthabiti na uhuru.

Kilicho kipya

Kazi hii inatambulisha na kutathmini safu ya udhibiti unaokaguliwa katika nafasi fiche ya kihirarkia kwa ajili ya kuzalisha upya vizalia vya programu ndani ya mipaka.

Maswali ambayo makala hii husaidia kujibu

Fungua swali ili kupata jibu fupi linalotegemea makala. Mipaka ya kina ya ushahidi imeorodheshwa katika Mapungufu.

  1. AI inawezaje kuhariri msimbo bila kuandika upya kila kitu?

    Makala inachunguza uzalishaji upya wa sehemu za msimbo juu ya kiwango cha tokeni. VQ-VAE ya kihierarkia huwakilisha kitendakazi kifupi cha Python kwa misimbo tambufu ya jumla na ya kina; nafasi teule za jumla hufungwa, na uzalishaji tambufu wenye ufichaji hubadilisha tu nafasi fiche zilizosalia kabla ya usimbuaji. Hivyo, mpaka wa uhifadhi unawekwa wazi badala ya kuzalisha upya kitendakazi kizima.

  2. Ni mbinu zipi huhifadhi muundo wa programu wakati wa uzalishaji wa msimbo?

    Kazi hii hujaribu udhibiti wa viwakilishi fiche tambufu vya kihierarkia. Nafasi fiche za ngazi ya jumla zinaweza kufungwa huku nafasi zisizofungwa zikizalishwa upya; kisha kiwango cha uchanganuzi na viashiria mbadala vya muundo hupimwa. Ushahidi unahusu uthabiti wa muundo wa kiuwezekano katika vitendakazi vifupi vya Python; hauthibitishi uhifadhi kamili wa AST, ulinganifu wa kisemantiki wala usahihi wa kiutendaji.

  3. Je, viwakilishi fiche tambufu vya kihierarkia vinaweza kuwezesha udhibiti wa msimbo katika eneo maalumu?

    Katika jaribio lililoripotiwa la vitendakazi 2,000, kufunga misimbo minne ya ngazi ya juu kuliongeza kiwango cha uchanganuzi kutoka 0.453 hadi 0.591. Wakati huohuo, 0.936 ya nafasi zisizofungwa zilibadilika na sampuli zenye masharti zilikuwa za kipekee kwa kiwango cha 0.998. Matokeo haya ni ushahidi wa awali kwamba masharti mapana ya viwakilishi fiche yanaweza kuhifadhi sehemu ya muundo bila kuondoa uhuru wa uhariri wa ndani au uanuwai wa sampuli.

  4. Uzalishaji wa msimbo unawezaje kusawazisha uthabiti wa muundo na uanuwai?

    Makala hutathmini uthabiti na uhuru kwa pamoja badala ya kuboresha uhalali pekee. Kufunga misimbo ya jumla huongeza uhalali wa kisintaksia huku mabadiliko katika nafasi zisizofungwa yakibaki makubwa na sampuli zenye masharti zikibaki karibu zote za kipekee. Matokeo yanaonyesha uwiano unaopimika kati ya uthabiti na uhuru chini ya usanidi uliojaribiwa, wala si kiwango bora cha jumla.

  5. Kazi hii inahusianaje na uhariri wa msimbo unaosaidiwa na LLM?

    Modeli iliyojaribiwa ni VQ-VAE ya kihirarkia yenye uzalishaji wa kidijiti wenye ufunikaji, si modeli kubwa ya lugha. Hata hivyo, tatizo la udhibiti lina umuhimu kwa uhariri unaosaidiwa na LLM kwa sababu mabadiliko yasiyo ya lazima nje ya eneo lililoombwa ni tatizo la kiutendaji. Makala inatoa utaratibu wa ziada wa nafasi fiche na mfumo wa tathmini, si kipimo sanifu cha uhariri wa LLM.

Ulinganisho na mikabala inayokaribiana

Ulinganisho wa kihalisi wa Udhibiti Unaokaguliwa kwa Uzalishaji Upya wa Programu Unaohifadhi Muundo na mikabala inayokaribiana
UwezoUdhibiti katika kiwango cha tokeniUdhibiti wa kidaraja wa nafasi fiche
Funga muundo wa jumlaKiwango kidogoUfungaji asilia wa misimbo yenye uzito mpana
Uzalishaji upya wa sehemuMasharti dhaifu ya juujuuUsampulishaji upya wenye ufichaji wa misimbo iliyochaguliwa
Sehemu za udhibiti unaokaguliwaHakuna safu ya kati iliyo bayanaNafasi bainifu za kiwango jumla na kiwango mahususi
Ushahidi katika makala hiiHaikutathminiwa kama msingi linganishi kamiliUchunguzi wa uthabiti wa kisintaksia na uhuru wa uhariri

Jedwali linafafanua violesura na ushahidi uliopimwa katika utafiti; halidai usahihi wa kiutendaji wala ubora wa jumla.

Umuhimu na mawanda

Makala inafaa zaidi kwa kazi inayohitaji udhibiti wa wazi wa mambo ambayo ugeuzaji wa msimbo unaosaidiwa na AI unaweza kubadilisha na sehemu za programu zinazopaswa kubaki thabiti.

  1. Uzalishaji wa msimbo unaodhibitika na wenye kuhifadhi muundo

  2. Urekebishaji wa programu uliowekewa mipaka na urekebishaji wa muundo wa msimbo wenye mipaka

  3. Viwakilishi tambufu vya kihierarkia vya msimbo chanzo

  4. Uzalishaji bainifu wenye ufichaji kwa msimbo chanzo

  5. Udhibiti wa nafasi fiche kwa vizalia vya programu

Tazama vikwazo na mipaka ya ushahidi

Mapungufu

  • Utafiti umewekewa mipaka ya vitendakazi vifupi vya Python vilivyokatwa hadi tokeni 64.
  • Tathmini hutumia usimbuaji wa argmax na vipimo mbadala vya kisintaksia au kimuundo badala ya majaribio ya usawa wa kiutendaji.
  • Uhifadhi kamili wa sahihi bado ni dhaifu.
  • Udhibiti wa ngazi ya chini ni dhaifu kuliko udhibiti wa ngazi ya juu.
  • Nafasi fiche bado hazijaoanishwa na maeneo ya kisemantiki kama vile masafa ya AST, saini, au muundo wa mtiririko wa udhibiti.
  • Matokeo hayathibitishi usahihi kwa urekebishaji wa kiutendaji, urekebishaji wa msimbo au mabadiliko katika kiwango cha hazina.

Marejeleo yaliyotajwa katika makala

Maingizo haya yanalingana na sehemu ya Marejeleo yenye nambari katika PDF ya makala.

  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.

Rasilimali na uwezo wa kuzalisha matokeo upya

Mchapishaji
ACM
Rasilimali za chapisho
Muswada wa umma, majedwali ya matokeo, kielelezo cha ufafanuzi na faili za nukuu zinapatikana hapa. Msimbo wa utekelezaji na vituo vya ukaguzi havijatolewa kwa umma.

Taarifa kuhusu data

Chanzo
Seti ndogo ya CodeParrot Clean iliyochakatwa awali, yenye vitendakazi 2,000 vya Python.
Leseni
Tovuti hii haisambazi upya faili zozote za mkusanyiko wa data; matumizi upya yanaendelea kutawaliwa na masharti ya mkusanyiko asilia wa CodeParrot na leseni za msimbo chanzo.
Uchakataji awali
Vitendakazi vya Python hugawanywa katika tokeni na kufupishwa au kujazwa hadi tokeni 64 kabla ya usimbaji wa kidaraja.
Gawanya
Bango linaripoti seti ya tathmini yenye vitendakazi 2,000; orodha-bainishi isiyobadilika ya mgawanyo wa mafunzo/uthibitishaji haijajumuishwa katika makala ya umma.
Muundo
Vitendakazi vya msimbo chanzo wa Python, mifuatano ya tokeni kwa mtindo wa GPT, mifuatano ya msimbo ya kiwango cha juu yenye urefu wa 16, na mifuatano ya kiwango cha chini yenye urefu wa 32.
Toleo / jumla ya ukaguzi
Thamani ya ukaguzi ya seti ya data na kitambulisho kisichobadilika cha taswira ya data havijaripotiwa katika makala ya kurasa mbili.
Upataji
Hati ya umma ya upataji haijatolewa pamoja na ukurasa wa chapisho.
Mipaka ya matumizi
Sampuli haiwakilishi programu za kiwango cha hazina, lugha nyingi za programu wala kazi za urekebishaji zilizothibitishwa kitabia.

Matoleo

  1. Toleo lililochapishwaACM FSE Companion, 2026
  2. Rekodi ya bibliaografiaDBLP
  3. Fungua rekodi ya kitaalumaOpenAlex
  4. Rekodi ya grafu ya marejeleoSemantic Scholar
  5. Matini kamili iliyoshirikiwa na mwandishiResearchGate
  6. Muhtasari kwa lugha nyepesiKudos

DOI iliyochapishwa ndiyo kitambulishi kikuu cha kibibliografia. Ukurasa huu unabaki URL moja rasmi ya mradi katika matoleo yote.