Inspectable Control for Structure-Preserving Software Regeneration

Controle inspecionável para regeneração de software com preservação de estrutura

Regeneração parcial e controlável de código por meio de representações latentes discretas hierárquicas.

Alexey Gavrilov1Alan-Barsag Gazzaev1Mikhail Mozikov2Ilya Makarov2Sergey Muravyov1

  1. ITMO University, São Petersburgo, Federação Russa
  2. AXXX, Moscou, Federação Russa

Ler o artigo completo em HTMLTexto pesquisável com fórmulas, tabelas, figuras e referências.

Manuscrito final do autor, com a lista definitiva de autores e o DOI. CC BY 4.0 author manuscript; the ACM DOI page remains the version of record. Termos de publicação e reutilização.

O artigo em 30 segundos

Pergunta de pesquisaComo um modelo generativo pode modificar partes selecionadas de um programa e, ao mesmo tempo, preservar elementos escolhidos de sua estrutura de granularidade grossa?

Problema

A modificação de código assistida por IA frequentemente requer uma única alteração delimitada, enquanto partes selecionadas da estrutura do programa permanecem fixas. Regenerar o programa inteiro pode afetar regiões não relacionadas, e as restrições no nível dos tokens não oferecem uma superfície de controle de granularidade grossa.

Abordagem

O estudo codifica funções Python de 64 tokens com um VQ-VAE hierárquico, bloqueia códigos discretos selecionados de granularidade grossa e emprega geração discreta mascarada para regenerar código de modo localizado nas posições latentes restantes.

Resultado principal

O bloqueio de quatro códigos de nível superior eleva a taxa de análise sintática de 0.453 para 0.591, enquanto as posições desbloqueadas ainda mudam à taxa de 0.936 e 0.998 das amostras condicionais permanecem únicas.

Por que isso é importante

Os resultados mostram um compromisso mensurável entre estabilidade e liberdade na edição controlável de código e na regeneração parcial de programas. Oferecem evidências preliminares de uma camada de controle latente inspecionável, e não uma prova de equivalência semântica ou correção funcional.

Resumo

Fluxos de trabalho de engenharia de software, como reparo com restrições, refinamento em etapas e modificação com preservação da estrutura, exigem controle sobre o que muda e o que permanece fixo. A geração no nível dos tokens constitui uma superfície de controle fraca para essas operações, pois restringe o texto superficial local, e não os invariantes estruturais grosseiros que a engenharia de software frequentemente busca preservar. Estudamos variáveis latentes discretas hierárquicas como representação intermediária inspecionável de artefatos de software: um VQ-VAE hierárquico comprime uma função Python de 64 tokens em códigos discretos grosseiros e finos, e a geração discreta mascarada regenera apenas posições selecionadas sob restrições parciais. Em 2.000 funções Python pré-processadas, fixar quatro códigos de nível superior eleva a taxa de análise sintática de 0.453 para 0.591, preservando alterações substanciais nas posições não fixadas (liberdade de edição, 0.936) e uma unicidade de amostras quase máxima (diversidade, 0.998). Sob contexto grosseiro fixo, o refinamento de nível inferior é mais fraco, mas permanece monotônico, corroborando uma interpretação da hierarquia do grosseiro para o fino. Em conjunto, esses resultados oferecem evidências preliminares de uma camada prática de controle que permite regenerar artefatos de software acima do nível dos tokens, de modo delimitado e com preservação da estrutura.

Publicado em Proceedings of the 34th ACM International Conference on the Foundations of Software Engineering

Tipo de contribuição Método de controle no espaço latente

pp. 1406–1407Pôster complementar

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

Compartilhar este artigoCompartilhar

Principais resultados

Principais resultados de Controle inspecionável para regeneração de software com preservação da estrutura
ConfiguraçãoTaxa de análise sintáticaEsqueletoAssinaturaAlteração desbloqueada
Entrada (truncada)0.9940.9940.994
Reconstrução pelo codec0.8570.8480.4930
Geração incondicional0.4530.0800.995
Condicional, prefixo k=40.5910.2950.0610.936
Condicional, intervalo da assinatura0.60.3020.063não informado

Resultado principal. O bloqueio de representações latentes de granularidade grossa melhora a estabilidade sintática sem suprimir as alterações na região editável; o resultado demonstra controle estrutural, não equivalência funcional garantida.

Conjunto de dados
2.000 funções Python pré-processadas de um subconjunto do CodeParrot Clean
Tamanho da amostra
2.000 funções Python pré-processadas; a unicidade das amostras condicionais é 0,998.
Métricas
Taxa de análise sintática; Métricas substitutas de preservação do esqueleto e das assinaturas; Taxa de alteração das posições desbloqueadas; Unicidade e entropia das amostras
Incerteza
O estudo de duas páginas apresenta estimativas pontuais, sem intervalos de confiança nem análise estatística com múltiplas sementes.
Condições
Funções de 64 tokens, decodificação por argmax, 16 códigos de nível superior e 32 de nível inferior; o bloqueio integral recupera exatamente a reconstrução do codec.

PDF e citação

Citar este artigo BibTeX é o formato recomendado. Todas as variantes abaixo são geradas a partir do mesmo registro de publicação.

Abrir 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},
}
Baixar .bib

Arquivos de citação:Texto em formato APATexto IEEERISCSL-JSONJSON-LD do Schema.orgXML OAI-DCXML OpenAIRE v4XML MODSXML de metadados JATS 1.4Texto integral em XML JATS 1.4RDF TurtleConjunto de links (JSON)Conjunto de links (HTTP)RO-Crate

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

Guia completo

Guia de pesquisa completo

Método

O método comprime uma função Python curta em dois níveis de códigos discretos, congela posições selecionadas de granularidade grossa e regenera as posições restantes antes de decodificar a representação novamente em código.

  1. Codificar

    Comprima uma função Python de 64 tokens em 16 códigos de nível superior e 32 códigos de nível inferior por meio de um VQ-VAE hierárquico.

  2. Bloquear

    Escolha posições de código de granularidade grossa que representem a estrutura a preservar, como um prefixo que abranja o intervalo da assinatura da função.

  3. Regenerar

    Executar a geração discreta mascarada somente sobre as posições desbloqueadas e decodificar a hierarquia completa de volta para código-fonte.

  4. Inspecionar

    Antes de aceitar uma regeneração, avaliar a taxa de análise sintática, as métricas substitutas estruturais, as alterações nas posições desbloqueadas e a unicidade das amostras.

Códigos selecionados de granularidade grossa do programa permanecem fixos, enquanto códigos discretos mascarados de granularidade fina são regenerados e decodificados em uma função Python modificada.
A edição de códigos latentes discretos hierárquicos preserva elementos selecionados da estrutura de granularidade grossa do programa enquanto regenera códigos de granularidade fina na região editável.Fonte: Diagrama explicativo criado pelo autor com base no método e nos resultados publicados..Termos de reutilização: CC BY 4.0.Atribuição sugerida: Gavrilov et al. (2026), Inspectable Control for Structure-Preserving Software Regeneration. Baixar SVG.

Ideia central

O controle é aplicado a uma representação aprendida acima do nível dos tokens: posições latentes de granularidade grossa definem locais explícitos em que a estrutura pode ser congelada, enquanto detalhes próximos da implementação permanecem editáveis.

Diferença em relação a abordagens correlatas

Restrições no nível do prompt ou do token atuam sobre o texto superficial. A interface proposta expõe pontos discretos de controle, tanto grossos quanto finos, e mede o compromisso resultante entre estabilidade e liberdade.

O que há de novo

O trabalho apresenta e avalia uma camada hierárquica de controle latente inspecionável para a regeneração delimitada de artefatos de software.

Perguntas que este artigo ajuda a responder

Abra uma pergunta para obter uma resposta concisa fundamentada no artigo. Os limites detalhados das evidências estão descritos em Limitações.

  1. Como a IA pode editar código sem reescrever tudo?

    O artigo estuda a regeneração parcial de código acima do nível dos tokens. Um VQ-VAE hierárquico mapeia uma função Python curta em códigos discretos de granularidade grossa e fina; posições selecionadas de granularidade grossa são bloqueadas, e a geração discreta mascarada altera apenas as posições latentes restantes antes da decodificação. Isso estabelece uma fronteira de preservação explícita, em vez de regenerar toda a função.

  2. Quais métodos preservam a estrutura do programa durante a geração de código?

    Este trabalho testa o controle latente discreto hierárquico. As posições latentes de granularidade grossa podem ser fixadas enquanto as posições desbloqueadas são regeneradas; em seguida, medem-se a taxa de análise sintática e métricas estruturais substitutas. As evidências dizem respeito à estabilidade estrutural probabilística em funções Python curtas; não estabelecem preservação exata da AST, equivalência semântica nem correção funcional.

  3. Representações latentes discretas hierárquicas podem proporcionar controle localizado sobre o código?

    No experimento relatado com 2.000 funções, o bloqueio de quatro códigos de nível superior aumentou a taxa de análise sintática de 0.453 para 0.591. Ao mesmo tempo, 0.936 das posições desbloqueadas foram alteradas, e 0.998 das amostras condicionais eram únicas. Esses resultados constituem evidência preliminar de que restrições latentes granulares podem preservar parte da estrutura sem eliminar a liberdade de edição local nem a diversidade das amostras.

  4. Como a geração de código pode conciliar estabilidade estrutural e diversidade?

    O artigo avalia conjuntamente a estabilidade e a liberdade, em vez de otimizar apenas a validade. A fixação de códigos grosseiros eleva a validade sintática, enquanto as alterações nas posições não fixadas permanecem elevadas e as amostras condicionais continuam quase inteiramente únicas. O resultado demonstra um compromisso mensurável entre estabilidade e liberdade na configuração testada, não um ótimo universal.

  5. Como este trabalho se relaciona à edição de código assistida por LLMs?

    O modelo testado é um VQ-VAE hierárquico com geração discreta mascarada, e não um modelo de linguagem de grande porte. Ainda assim, o problema de controle é pertinente à edição assistida por LLMs, pois alterações desnecessárias fora da região solicitada constituem uma preocupação prática. O artigo oferece um mecanismo complementar no espaço latente e um enquadramento de avaliação, não um benchmark de edição com LLMs.

Comparação com abordagens correlatas

Comparação factual entre Controle inspecionável para regeneração de software com preservação da estrutura e abordagens afins
CapacidadeControle no nível dos tokensControle latente hierárquico
Fixe a estrutura de granularidade grossaLimitadoBloqueio nativo de códigos de granularidade grossa
Regeneração parcialRestrições superficiais frágeisReamostragem mascarada dos códigos selecionados
Pontos de controle inspecionáveisSem camada intermediária explícitaPosições discretas de granularidade grossa e fina
Evidências apresentadas neste artigoNão avaliado como linha de base completaDiagnósticos de estabilidade sintática e liberdade de edição

A tabela descreve as interfaces e as evidências mensuradas no estudo; não reivindica correção funcional nem superioridade universal.

Relevância e escopo

O artigo é particularmente relevante para trabalhos que exigem controle explícito sobre o que uma transformação de código assistida por IA pode alterar e quais partes do programa devem permanecer estáveis.

  1. Geração de código controlável e com preservação da estrutura

  2. Reparo localizado de programas e refatoração delimitada

  3. Representações discretas hierárquicas para código-fonte

  4. Geração discreta mascarada para código-fonte

  5. Controle latente de artefatos de software

Consultar as limitações e os limites das evidências

Limitações

  • O estudo limita-se a funções Python curtas, truncadas em 64 tokens.
  • A avaliação emprega decodificação por argmax e medidas indiretas sintáticas ou estruturais, em vez de testes de equivalência funcional.
  • A preservação exata da assinatura permanece insatisfatória.
  • O controle de nível inferior é mais fraco que o controle de nível superior.
  • As posições latentes ainda não estão alinhadas a regiões semânticas, como intervalos da AST, assinaturas ou a estrutura do fluxo de controle.
  • Os resultados não estabelecem correção para reparos práticos, refatorações ou alterações no nível de repositórios.

Referências citadas pelo artigo

Estas entradas correspondem à seção numerada de Referências no PDF do artigo.

  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.

Recursos e reprodutibilidade

Editora
ACM
Recursos da publicação
O manuscrito público, as tabelas de resultados, a figura explicativa e os arquivos de citação estão disponíveis aqui. O código de implementação e os checkpoints não foram divulgados publicamente.

Declaração sobre os dados

Fonte
Um subconjunto pré-processado do CodeParrot Clean contendo 2.000 funções Python.
Licença
Este site não redistribui arquivos do conjunto de dados; a reutilização continua sujeita às licenças do conjunto de dados CodeParrot original e do código-fonte.
Pré-processamento
As funções Python são tokenizadas e truncadas ou preenchidas até 64 tokens antes da codificação hierárquica.
Divisão
O pôster relata um conjunto de avaliação com 2.000 funções; o artigo público não inclui um manifesto imutável da divisão entre treino e validação.
Formato
Funções em código-fonte Python, sequências de tokens no estilo GPT, sequências de código de nível superior com comprimento 16 e sequências de nível inferior com comprimento 32.
Versão / soma de verificação
O artigo de duas páginas não informa uma soma de verificação do conjunto de dados nem um identificador imutável do snapshot.
Aquisição
A página da publicação não disponibiliza um script público de aquisição.
Limites de uso
A amostra não é representativa de software na escala de repositórios, de várias linguagens de programação nem de tarefas de reparo verificadas quanto ao comportamento.

Versões

  1. Versão publicadaACM FSE Companion, 2026
  2. Abrir o registro no repositórioRegistro do Zenodo indexado pelo OpenAIRE
  3. Registro bibliográficoDBLP
  4. Abrir o registro acadêmicoOpenAlex
  5. Registro no grafo de citaçõesSemantic Scholar
  6. Texto integral compartilhado pelo autorResearchGate
  7. Resumo em linguagem acessívelKudos

O DOI publicado é o identificador bibliográfico principal. Esta página continua sendo a única URL canônica do projeto em todas as versões.