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.
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
Najważniejsze wyniki
| Konfiguracja | Odsetek poprawnego parsowania | Szkielet | Sygnatura | Zmiana w obszarze niezablokowanym |
|---|---|---|---|---|
| Dane wejściowe (skrócone) | 0.994 | 0.994 | 0.994 | — |
| Rekonstrukcja kodeka | 0.857 | 0.848 | 0.493 | 0 |
| Generowanie bezwarunkowe | 0.453 | 0.08 | 0 | 0.995 |
| Warunkowe, prefiks k=4 | 0.591 | 0.295 | 0.061 | 0.936 |
| Warunkowe, zakres sygnatury | 0.6 | 0.302 | 0.063 | nie 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.
Pobierz wyniki:CSVJSONMarkdownZewnętrzna kopia lustrzana:Karta zbioru danych Hugging Face
PDF i cytowanie
Cytowanie tej publikacji Zalecanym formatem cytowania jest BibTeX. Wszystkie poniższe warianty wygenerowano na podstawie tego samego rekordu publikacji.
@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 -
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
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.
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.
Zablokuj
Wybierz zgrubne pozycje kodów reprezentujące strukturę, którą należy zachować, na przykład prefiks obejmujący zakres sygnatury funkcji.
Wygeneruj ponownie
Przeprowadź maskowane generowanie dyskretne wyłącznie dla odblokowanych pozycji, po czym zdekoduj uzupełnioną hierarchię z powrotem do kodu źródłowego.
Sprawdź
Przed zaakceptowaniem regeneracji należy zmierzyć odsetek poprawnego parsowania, strukturalne miary zastępcze, zmiany na odblokowanych pozycjach oraz unikatowość próbek.
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.
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.
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.
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.
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.
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
| Możliwość | Kontrola na poziomie tokenów | Hierarchiczna kontrola przestrzeni utajonej |
|---|---|---|
| Zablokuj strukturę zgrubną | Ograniczone | Natywne blokowanie kodów zgrubnych |
| Regeneracja częściowa | Nietrwałe ograniczenia powierzchniowe | Maskowane ponowne próbkowanie wybranych kodów |
| Punkty kontroli poddające się inspekcji | Brak jawnej warstwy pośredniej | Zgrubne i szczegółowe pozycje dyskretne |
| Dowody przedstawione w tej pracy | Nie oceniono jako kompletnego punktu odniesienia | Diagnostyka 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.
Sterowalne generowanie kodu z zachowaniem struktury
Lokalna naprawa programów i refaktoryzacja o ograniczonym zakresie
Hierarchiczne reprezentacje dyskretne kodu źródłowego
Maskowane generowanie dyskretne kodu źródłowego
Sterowanie w przestrzeni utajonej dla artefaktów programistycznych
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.
- 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.
Zasoby i odtwarzalność
- Wydawca
- ACM
- Lokalny plik PDF z tekstem
- Ostateczny manuskrypt autora z końcową listą autorów i DOI
- 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
- Wersja opublikowanaACM FSE Companion, 2026
- Zewnętrzna kopia lustrzana pełnego tekstuManuskrypt autorski na licencji CC BY 4.0 w Hugging Face
- Otwórz rekord w repozytoriumRekord Zenodo indeksowany przez OpenAIRE
- Otwórz pełny tekst w repozytoriumManuskrypt autorski w Zenodo na licencji CC BY 4.0; tekstowo równoważny manuskryptowi lokalnemu
- Materiały autoraPlakat i zestaw slajdów
- Rekord bibliograficznyDBLP
- Otwórz rekord naukowyOpenAlex
- Rekord grafu cytowańSemantic Scholar
- Pełny tekst udostępniony przez autoraResearchGate
- Streszczenie przystępnym językiemKudos
Opublikowany DOI jest podstawowym identyfikatorem bibliograficznym. Ta strona pozostaje jedynym kanonicznym adresem URL projektu we wszystkich wersjach.