# Inspectable Control for Structure-Preserving Software Regeneration

Canonical HTML: https://aogavrilov.com/pl/publications/inspectable-control/

Document language: pl

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

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

[Alexey Gavrilov](https://orcid.org/0009-0006-3147-5430) 1 [Alan-Barsag Gazzaev](https://orcid.org/0009-0000-0334-312X) 1 [Mikhail Mozikov](https://orcid.org/0000-0003-0594-867X) 2 [Ilya Makarov](https://orcid.org/0000-0002-3308-8825) 2 [Sergey Muravyov](https://orcid.org/0000-0002-4251-1744) 1

1. [ITMO University, Saint Petersburg, Russian Federation](https://en.itmo.ru/)
2. [AXXX, Moskwa, Federacja Rosyjska](https://axxx.tech/)

[Przeczytaj pełny tekst publikacji w formacie HTML](https://aogavrilov.com/publications/inspectable-control/full-text/) Przeszukiwalny 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](https://creativecommons.org/licenses/by/4.0/) .

## Artykuł w 30 sekund

**Pytanie badawcze** Jak 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

5 lipca 2026 s. 1406–1407 Plakat towarzyszący

DOI [https://doi.org/10.1145/3803437.3807386](https://doi.org/10.1145/3803437.3807386)

## Spis treści Na tej stronie

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

Pobierz wyniki: [CSV](https://aogavrilov.com/publications/inspectable-control/results.csv) [JSON](https://aogavrilov.com/publications/inspectable-control/results.json) [Markdown](https://aogavrilov.com/publications/inspectable-control/results.md) Zewnętrzna kopia lustrzana: [Karta zbioru danych Hugging Face](https://huggingface.co/datasets/aogavrilov/inspectable-control-results)

## 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},
}
```

Pliki cytowania: [Tekst APA](https://aogavrilov.com/publications/inspectable-control/citation-apa.txt) [Tekst IEEE](https://aogavrilov.com/publications/inspectable-control/citation-ieee.txt) [RIS](https://aogavrilov.com/publications/inspectable-control/citation.ris) [CSL-JSON](https://aogavrilov.com/publications/inspectable-control/citation.json) [Schema.org JSON-LD](https://aogavrilov.com/publications/inspectable-control/metadata.jsonld) [OAI-DC XML](https://aogavrilov.com/publications/inspectable-control/oai-dc.xml) [OpenAIRE v4 XML](https://aogavrilov.com/publications/inspectable-control/openaire.xml) [MODS XML](https://aogavrilov.com/publications/inspectable-control/mods.xml) [Metadane XML zgodne z JATS 1.4](https://aogavrilov.com/publications/inspectable-control/metadata.jats.xml) [Pełny tekst w formacie JATS 1.4 XML](https://aogavrilov.com/publications/inspectable-control/full-text/article.jats.xml) [RDF Turtle](https://aogavrilov.com/publications/inspectable-control/metadata.ttl) [Zestaw odsyłaczy (JSON)](https://aogavrilov.com/publications/inspectable-control/linkset.json) [Zestaw odsyłaczy (HTTP)](https://aogavrilov.com/publications/inspectable-control/linkset) [RO-Crate](https://aogavrilov.com/publications/inspectable-control/ro-crate-metadata.json)

DOI: [https://doi.org/10.1145/3803437.3807386](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.](https://aogavrilov.com/publications/inspectable-control/hierarchical-discrete-latent-code-editing.svg)

**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.](https://doi.org/10.1145/3803437.3807386) . Warunki ponownego wykorzystania: [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) . Sugerowane oznaczenie autorstwa: Gavrilov et al. (2026), Inspectable Control for Structure-Preserving Software Regeneration. [Pobierz plik SVG](https://aogavrilov.com/publications/inspectable-control/hierarchical-discrete-latent-code-editing.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

## 

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

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

## 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. 2019 . [Generating Diverse High-Fidelity Images with VQ-VAE-2](https://arxiv.org/abs/1906.00446) . Advances in Neural Information Processing Systems .
2. Jacob Austin, Daniel D. Johnson, Jonathan Ho, Daniel Tarlow, Rianne van den Berg. 2021 . [Structured Denoising Diffusion Models in Discrete State-Spaces](https://arxiv.org/abs/2107.03006) . 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. 2024 . [Simple and Effective Masked Diffusion Language Models](https://arxiv.org/abs/2406.07524) . Advances in Neural Information Processing Systems .
4. Shraddha Barke, Michael B. James, Nadia Polikarpova. 2023 . [Grounded Copilot: How Programmers Interact with Code-Generating Models](https://doi.org/10.1145/3586030) . 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. 2023 . [RepoCoder: Repository-Level Code Completion Through Iterative Retrieval and Generation](https://doi.org/10.18653/v1/2023.emnlp-main.151) . Proceedings of the 2023 Conference on Empirical Methods in Natural Language Processing .

## Zasoby i odtwarzalność

## 

### Oświadczenie dotyczące danych

## Wersje

## 

1. **Wersja opublikowana** [ACM FSE Companion, 2026](https://doi.org/10.1145/3803437.3807386)
2. **Manuskrypt autora** [Dostępny tekstowo ostateczny maszynopis z końcową listą autorów i DOI](https://aogavrilov.com/publications/inspectable-control/paper.pdf)
3. **Zewnętrzna kopia lustrzana pełnego tekstu** [Manuskrypt autorski na licencji CC BY 4.0 w Hugging Face](https://huggingface.co/datasets/aogavrilov/inspectable-control-results/resolve/main/paper.pdf)
4. **Otwórz rekord w repozytorium** [Rekord Zenodo indeksowany przez OpenAIRE](https://zenodo.org/records/21605395)
5. **Otwórz pełny tekst w repozytorium** [Manuskrypt autorski w Zenodo na licencji CC BY 4.0; tekstowo równoważny manuskryptowi lokalnemu](https://zenodo.org/records/21605395/files/fse2026-posters-final11%20%284%29.pdf?download=1)
6. **Materiały autora** [Plakat i zestaw slajdów](https://aogavrilov.com/publications/inspectable-control/media/)
7. **Rekord bibliograficzny** [DBLP](https://dblp.org/rec/conf/sigsoft/GavrilovGMMM26)
8. **Otwórz rekord naukowy** [OpenAlex](https://openalex.org/W7169573479)
9. **Rekord grafu cytowań** [Semantic Scholar](https://www.semanticscholar.org/paper/93c3de037596ce177d9d882d214ccad5c5405b00)
10. **Pełny tekst udostępniony przez autora** [ResearchGate](https://www.researchgate.net/publication/410435483_Inspectable_Control_for_Structure-Preserving_Software_Regeneration)
11. **Streszczenie przystępnym językiem** [Kudos](https://www.growkudos.com/publications/10.1145%252F3803437.3807386/reader)

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

## Powiązana publikacja

- [Where Quality Breaks in Compressed Short-Text Generation: Staged Bottleneck Localization](https://aogavrilov.com/pl/publications/where-quality-breaks/)

Przeczytaj [Sterowalna edycja kodu](https://aogavrilov.com/pl/projects/discrete-latent-generation/) przewodnik badawczy. [O autorze](https://aogavrilov.com/about/) .

### Ukierunkowane noty badawcze

Odpowiedzi dostosowane do intencji, z wyraźnie określonym zakresem dowodów i odsyłaczami do tej publikacji.

- [Lokalna modyfikacja kodu za pomocą modeli generatywnych](https://aogavrilov.com/pl/research-notes/localized-code-modification-generative-models/)
- [Generowanie kodu z ograniczeniami na potrzeby inżynierii oprogramowania](https://aogavrilov.com/pl/research-notes/constrained-code-generation-software-engineering/)
- [Refaktoryzacja wspomagana przez AI: metody i dowody](https://aogavrilov.com/pl/research-notes/ai-assisted-refactoring-evidence/)
- [Przewidywalne generowanie kodu wymaga kontraktu zachowania](https://aogavrilov.com/pl/research-notes/predictable-code-generation-preservation-contract/)
