Inspectable Control for Structure-Preserving Software Regeneration

Kontrola poddająca się inspekcji w regeneracji oprogramowania z zachowaniem struktury

Sterowalna, częściowa regeneracja kodu z użyciem hierarchicznych dyskretnych reprezentacji utajonych.

Alexey Gavrilov1Alan-Barsag Gazzaev1Mikhail Mozikov2Ilya Makarov2Sergey Muravyov1

  1. ITMO University, Saint Petersburg, Russian Federation
  2. AXXX, Moskwa, Federacja Rosyjska

Przeczytaj pełny tekst publikacji w formacie HTMLPrzeszukiwalny tekst zawierający wzory, tabele, rysunki i bibliografię.

Ostateczny manuskrypt autora z końcową listą autorów i DOI. CC BY 4.0 author manuscript; the ACM DOI page remains the version of record. Warunki udostępniania i ponownego wykorzystania.

Artykuł w 30 sekund

Pytanie badawczeJak model generatywny może modyfikować wybrane części programu, zachowując wskazane elementy jego struktury zgrubnej?

Problem

Modyfikowanie kodu z pomocą AI często wymaga jednej zmiany o ograniczonym zakresie, przy zachowaniu wybranych elementów struktury programu. Regeneracja całego programu może naruszyć niepowiązane obszary, a ograniczenia na poziomie tokenów nie zapewniają mechanizmu sterowania strukturą zgrubną.

Podejście

W badaniu 64-tokenowe funkcje w języku Python koduje się za pomocą hierarchicznego VQ-VAE, blokuje wybrane zgrubne kody dyskretne, a następnie stosuje maskowane generowanie dyskretne do lokalnej regeneracji kodu w pozostałych pozycjach reprezentacji utajonej.

Główny wynik

Zablokowanie czterech kodów najwyższego poziomu zwiększa odsetek poprawnego parsowania z 0.453 do 0.591; zarazem odsetek zmian w niezablokowanych pozycjach wynosi 0.936, a udział unikatowych próbek warunkowych pozostaje na poziomie 0.998.

Dlaczego ma to znaczenie

Wyniki ukazują mierzalny kompromis między stabilnością a swobodą w sterowalnej edycji kodu i częściowej regeneracji programu. Stanowią wstępną przesłankę użyteczności warstwy sterowania w przestrzeni utajonej, której działanie można prześledzić; nie dowodzą równoważności semantycznej ani poprawności funkcjonalnej.

Streszczenie

Procesy inżynierii oprogramowania, takie jak naprawa z ograniczeniami, etapowe udoskonalanie i modyfikacja z zachowaniem struktury, wymagają kontroli nad tym, co się zmienia, a co pozostaje niezmienne. Generowanie na poziomie tokenów słabo nadaje się do sterowania takimi operacjami, ponieważ nakłada ograniczenia na lokalną postać tekstu, nie zaś na zgrubne niezmienniki strukturalne, które często należy zachować. Badamy hierarchiczne dyskretne reprezentacje utajone jako reprezentację pośrednią artefaktów programistycznych, której działanie można prześledzić: hierarchiczny VQ-VAE kompresuje 64-tokenową funkcję w języku Python do zgrubnych i szczegółowych kodów dyskretnych, a maskowane generowanie dyskretne regeneruje pod częściowymi ograniczeniami tylko wybrane pozycje. Dla 2,000 wstępnie przetworzonych funkcji w języku Python zablokowanie czterech kodów najwyższego poziomu zwiększa odsetek poprawnego parsowania z 0.453 do 0.591, przy zachowaniu znacznego zakresu zmian w odblokowanych pozycjach (swoboda edycji: 0.936) i niemal maksymalnej unikatowości próbek (różnorodność: 0.998). Przy ustalonym kontekście zgrubnym udoskonalanie na niższym poziomie jest słabsze, lecz pozostaje monotoniczne, co przemawia za interpretacją hierarchii od ogółu do szczegółu. Wyniki te stanowią wstępną przesłankę praktycznej użyteczności warstwy sterowania, która umożliwia ograniczoną regenerację artefaktów programistycznych z zachowaniem struktury ponad poziomem tokenów.

Miejsce publikacji Materiały 34. Międzynarodowej Konferencji ACM poświęconej podstawom inżynierii oprogramowania

Rodzaj wkładu Metoda sterowania w przestrzeni utajonej

s. 1406–1407Plakat towarzyszący

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

Udostępnij ten artykułUdostępnij

Najważniejsze wyniki

Najważniejsze wyniki kontroli poddającej się inspekcji w ponownym generowaniu oprogramowania z zachowaniem struktury
KonfiguracjaOdsetek poprawnego parsowaniaSzkieletSygnaturaZmiana w obszarze niezablokowanym
Dane wejściowe (skrócone)0.9940.9940.994
Rekonstrukcja kodeka0.8570.8480.4930
Generowanie bezwarunkowe0.4530.0800.995
Warunkowe, prefiks k=40.5910.2950.0610.936
Warunkowe, zakres sygnatury0.60.3020.063nie podano

Najważniejszy wynik. Blokowanie zgrubnych reprezentacji utajonych poprawia stabilność składniową, nie eliminując zmian w obszarze edytowalnym; wynik wskazuje na możliwość sterowania strukturą, lecz nie gwarantuje równoważności funkcjonalnej.

Zbiór danych
2,000 wstępnie przetworzonych funkcji Pythona z podzbioru CodeParrot Clean
Liczebność próby
2,000 wstępnie przetworzonych funkcji Pythona; unikatowość próbek warunkowych wynosi 0.998.
Metryki
Odsetek poprawnego parsowania; miary zastępcze zachowania szkieletu i sygnatur; odsetek zmian na odblokowanych pozycjach; unikatowość i entropia próbek
Niepewność
Dwustronicowe opracowanie przedstawia oszacowania punktowe bez przedziałów ufności ani analizy statystycznej obejmującej wiele wartości ziarna losowego.
Warunki
Funkcje o długości 64 tokenów, dekodowanie argmax, 16 kodów najwyższego poziomu i 32 kody niższego poziomu; pełne zablokowanie dokładnie odtwarza rekonstrukcję kodeka.

PDF i cytowanie

Cytowanie tej publikacji Zalecanym formatem cytowania jest BibTeX. Wszystkie poniższe warianty wygenerowano na podstawie tego samego rekordu publikacji.

Otwórz 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},
}
Pobierz plik .bib

Pliki cytowania:Tekst APATekst IEEERISCSL-JSONSchema.org JSON-LDOAI-DC XMLOpenAIRE v4 XMLMODS XMLMetadane XML zgodne z JATS 1.4Pełny tekst w formacie JATS 1.4 XMLRDF TurtleZestaw odsyłaczy (JSON)Zestaw odsyłaczy (HTTP)RO-Crate

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

Pełny przewodnik

Pełny przewodnik badawczy

Metoda

Metoda kompresuje krótką funkcję w języku Python do dwóch poziomów kodów dyskretnych, unieruchamia wybrane pozycje zgrubne i regeneruje pozostałe pozycje przed zdekodowaniem ich z powrotem do kodu źródłowego.

  1. Koduj

    Skompresuj 64-tokenową funkcję w języku Python do 16 kodów najwyższego poziomu i 32 kodów niższego poziomu za pomocą hierarchicznego VQ-VAE.

  2. Zablokuj

    Wybierz zgrubne pozycje kodów reprezentujące strukturę, którą należy zachować, na przykład prefiks obejmujący zakres sygnatury funkcji.

  3. Wygeneruj ponownie

    Przeprowadź maskowane generowanie dyskretne wyłącznie dla odblokowanych pozycji, po czym zdekoduj uzupełnioną hierarchię z powrotem do kodu źródłowego.

  4. Sprawdź

    Przed zaakceptowaniem regeneracji należy zmierzyć odsetek poprawnego parsowania, strukturalne miary zastępcze, zmiany na odblokowanych pozycjach oraz unikatowość próbek.

Wybrane zgrubne kody programu pozostają ustalone, natomiast zamaskowane szczegółowe kody dyskretne są generowane ponownie i dekodowane do zmodyfikowanej funkcji w języku Python.
Edycja hierarchicznych dyskretnych kodów reprezentacji utajonej zachowuje wybrane elementy zgrubnej struktury programu, a zarazem regeneruje kody szczegółowe w obszarze edytowalnym.Źródło: Diagram objaśniający opracowany przez autora na podstawie opublikowanej metody i wyników..Warunki ponownego wykorzystania: CC BY 4.0.Sugerowane oznaczenie autorstwa: Gavrilov et al. (2026), Inspectable Control for Structure-Preserving Software Regeneration. Pobierz plik SVG.

Główna idea

Sterowanie odbywa się na poziomie wyuczonej reprezentacji ponad tokenami: zgrubne pozycje reprezentacji utajonej jawnie wskazują miejsca, w których można unieruchomić strukturę, pozostawiając do edycji powiązane szczegóły implementacyjne.

Różnica względem pokrewnych podejść

Ograniczenia na poziomie polecenia lub tokenów odnoszą się do powierzchniowej postaci tekstu. Proponowany interfejs udostępnia zgrubne i szczegółowe dyskretne punkty kontroli oraz mierzy wynikający z nich kompromis między stabilnością a swobodą.

Co stanowi nowość

W pracy wprowadzono i oceniono hierarchiczną warstwę sterowania w przestrzeni utajonej, której działanie można prześledzić, przeznaczoną do regeneracji artefaktów programistycznych w ograniczonym zakresie.

Pytania, na które pomaga odpowiedzieć ta publikacja

Otwórz pytanie, aby uzyskać zwięzłą odpowiedź opartą na publikacji. Szczegółowe granice materiału dowodowego podano w sekcji Ograniczenia.

  1. Jak sztuczna inteligencja może edytować kod bez przepisywania wszystkiego?

    Artykuł bada częściową regenerację kodu ponad poziomem tokenów. Hierarchiczny VQ-VAE odwzorowuje krótką funkcję w języku Python na zgrubne i szczegółowe kody dyskretne; wybrane pozycje zgrubne zostają zablokowane, a maskowana dyfuzja dyskretna zmienia przed dekodowaniem tylko pozostałe pozycje w przestrzeni ukrytej. Zapewnia to jawną granicę zachowania zamiast regenerowania całej funkcji.

  2. Jakie metody umożliwiają zachowanie struktury programu podczas generowania kodu?

    W pracy testuje się hierarchiczną dyskretną kontrolę latentną. Zgrubne pozycje latentne można unieruchomić, podczas gdy pozycje niezablokowane są regenerowane; następnie mierzy się odsetek poprawnego parsowania i wskaźniki zastępcze struktury. Wyniki dotyczą probabilistycznej stabilności strukturalnej krótkich funkcji języka Python; nie dowodzą dokładnego zachowania AST, równoważności semantycznej ani poprawności funkcjonalnej.

  3. Czy hierarchiczne dyskretne reprezentacje ukryte mogą zapewnić lokalną kontrolę nad kodem?

    W opisanym eksperymencie obejmującym 2,000 funkcji zablokowanie czterech kodów najwyższego poziomu zwiększyło odsetek poprawnego parsowania z 0.453 do 0.591. Jednocześnie zmianie uległo 0.936 niezablokowanych pozycji, a udział unikatowych próbek warunkowych wyniósł 0.998. Wyniki te stanowią wstępną przesłankę, że zgrubne ograniczenia reprezentacji utajonej mogą zachować część struktury bez eliminowania swobody lokalnej edycji ani różnorodności próbek.

  4. Jak w generowaniu kodu zrównoważyć stabilność strukturalną i różnorodność?

    W artykule stabilność i swobodę ocenia się łącznie, zamiast optymalizować wyłącznie poprawność. Blokowanie kodów zgrubnych zwiększa poprawność składniową, podczas gdy zakres zmian w odblokowanych pozycjach pozostaje duży, a próbki warunkowe są niemal w całości unikatowe. Wynik ukazuje mierzalny kompromis między stabilnością a swobodą w badanej konfiguracji, a nie uniwersalne optimum.

  5. Jak ta praca wiąże się z edycją kodu wspomaganą przez LLM?

    Testowany model to hierarchiczny VQ-VAE z maskowanym generowaniem dyskretnym, a nie duży model językowy. Problem kontroli pozostaje jednak istotny dla edycji wspomaganej przez LLM, ponieważ zbędne zmiany poza wskazanym obszarem stanowią realny problem praktyczny. Artykuł wnosi uzupełniający mechanizm działający w przestrzeni latentnej oraz ramy oceny, nie zaś benchmark edycji z użyciem LLM.

Porównanie z pokrewnymi podejściami

Merytoryczne porównanie kontroli poddającej się inspekcji w ponownym generowaniu oprogramowania z zachowaniem struktury z pokrewnymi podejściami
MożliwośćKontrola na poziomie tokenówHierarchiczna kontrola przestrzeni utajonej
Zablokuj strukturę zgrubnąOgraniczoneNatywne blokowanie kodów zgrubnych
Regeneracja częściowaNietrwałe ograniczenia powierzchnioweMaskowane ponowne próbkowanie wybranych kodów
Punkty kontroli poddające się inspekcjiBrak jawnej warstwy pośredniejZgrubne i szczegółowe pozycje dyskretne
Dowody przedstawione w tej pracyNie oceniono jako kompletnego punktu odniesieniaDiagnostyka stabilności składniowej i swobody edycji

Tabela opisuje interfejsy i wyniki pomiarów uzyskane w badaniu; nie przesądza o poprawności funkcjonalnej ani powszechnej przewadze.

Znaczenie i zakres

Artykuł ma największe znaczenie dla prac wymagających jawnej kontroli nad tym, co transformacja kodu wspomagana przez AI może zmienić, a które części programu powinny pozostać stabilne.

  1. Sterowalne generowanie kodu z zachowaniem struktury

  2. Lokalna naprawa programów i refaktoryzacja o ograniczonym zakresie

  3. Hierarchiczne reprezentacje dyskretne kodu źródłowego

  4. Maskowane generowanie dyskretne kodu źródłowego

  5. Sterowanie w przestrzeni utajonej dla artefaktów programistycznych

Zobacz ograniczenia i zakres wiarygodności dowodów

Ograniczenia

  • Badanie ogranicza się do krótkich funkcji języka Python skróconych do 64 tokenów.
  • Ewaluacja wykorzystuje dekodowanie argmax oraz syntaktyczne lub strukturalne miary zastępcze zamiast testów równoważności funkcjonalnej.
  • Dokładne zachowanie sygnatur nadal wypada słabo.
  • Sterowanie na niższym poziomie jest słabsze niż sterowanie na poziomie najwyższym.
  • Pozycje w reprezentacji utajonej nie są jeszcze powiązane z obszarami semantycznymi, takimi jak zakresy AST, sygnatury czy struktura przepływu sterowania.
  • Wyniki nie dowodzą poprawności w odniesieniu do praktycznej naprawy, refaktoryzacji ani zmian na poziomie repozytorium.

Literatura cytowana w publikacji

Pozycje te odpowiadają numerowanej sekcji References w pliku PDF artykułu.

  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.

Zasoby i odtwarzalność

Wydawca
ACM
Materiały dotyczące publikacji
Tutaj udostępniono publiczny maszynopis, tabele wyników, rysunek objaśniający i pliki cytowań. Kod implementacji i punkty kontrolne modelu nie zostały opublikowane.

Oświadczenie dotyczące danych

Źródło
Wstępnie przetworzony podzbiór CodeParrot Clean zawierający 2,000 funkcji Pythona.
Licencja
Ta witryna nie redystrybuuje żadnych plików zbioru danych; ponowne wykorzystanie nadal podlega warunkom źródłowego zbioru CodeParrot oraz licencjom kodu źródłowego.
Przetwarzanie wstępne
Funkcje języka Python są tokenizowane, a następnie skracane lub dopełniane do 64 tokenów przed kodowaniem hierarchicznym.
Podział
Plakat podaje zbiór ewaluacyjny obejmujący 2,000 funkcji; publicznie dostępny artykuł nie zawiera niezmiennego manifestu podziału na zbiór treningowy i walidacyjny.
Format
Funkcje źródłowe języka Python, sekwencje tokenów w stylu GPT, sekwencje kodu najwyższego poziomu o długości 16 oraz sekwencje niższego poziomu o długości 32.
Wersja / suma kontrolna
W dwustronicowym artykule nie podano sumy kontrolnej zbioru danych ani niezmiennego identyfikatora migawki.
Pozyskanie
Wraz ze stroną publikacji nie udostępniono publicznego skryptu do pozyskania danych.
Ograniczenia stosowania
Próba nie jest reprezentatywna dla oprogramowania w skali repozytorium, wielu języków programowania ani zadań naprawczych weryfikowanych na poziomie zachowania.

Wersje

  1. Wersja opublikowanaACM FSE Companion, 2026
  2. Zewnętrzna kopia lustrzana pełnego tekstuManuskrypt autorski na licencji CC BY 4.0 w Hugging Face
  3. Otwórz rekord w repozytoriumRekord Zenodo indeksowany przez OpenAIRE
  4. Materiały autoraPlakat i zestaw slajdów
  5. Rekord bibliograficznyDBLP
  6. Otwórz rekord naukowyOpenAlex
  7. Rekord grafu cytowańSemantic Scholar
  8. Pełny tekst udostępniony przez autoraResearchGate
  9. Streszczenie przystępnym językiemKudos

Opublikowany DOI jest podstawowym identyfikatorem bibliograficznym. Ta strona pozostaje jedynym kanonicznym adresem URL projektu we wszystkich wersjach.