# Inspectable Control for Structure-Preserving Software Regeneration

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

Document language: es

Control inspeccionable para la regeneración de software con preservación de la estructura

Regeneración parcial y controlable de código mediante representaciones latentes discretas jerárquicas.

[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. [Universidad ITMO, San Petersburgo, Federación de Rusia](https://en.itmo.ru/)
2. [AXXX, Moscú, Federación de Rusia](https://axxx.tech/)

[Leer el artículo completo en HTML](https://aogavrilov.com/publications/inspectable-control/full-text/) Texto consultable con fórmulas, tablas, figuras y referencias.

Manuscrito final del autor con la lista definitiva de autores y el DOI. CC BY 4.0 author manuscript; the ACM DOI page remains the version of record. [Condiciones de publicación y reutilización](https://creativecommons.org/licenses/by/4.0/) .

## El artículo en 30 segundos

**Pregunta de investigación** ¿Cómo puede un modelo generativo modificar partes seleccionadas de un programa preservando elementos elegidos de su estructura gruesa?

### Problema

La modificación de código asistida por IA suele requerir un único cambio acotado mientras la estructura seleccionada del programa permanece fija. Regenerar todo el programa puede alterar regiones no relacionadas, y las restricciones a nivel de token no ofrecen una superficie de control de grano grueso.

### Enfoque

El estudio codifica funciones de Python de 64 tókenes con un VQ-VAE jerárquico, bloquea determinados códigos discretos gruesos y emplea generación discreta enmascarada para regenerar código de forma localizada en las posiciones latentes restantes.

### Resultado principal

Bloquear cuatro códigos de nivel superior eleva la tasa de análisis sintáctico de 0.453 a 0.591, mientras que la tasa de cambio de las posiciones desbloqueadas se mantiene en 0.936 y la tasa de unicidad de las muestras condicionales, en 0.998.

### Por qué es importante

Los resultados muestran un equilibrio cuantificable entre estabilidad y libertad en la edición controlable de código y la regeneración parcial de programas. Aportan evidencia inicial de una capa de control latente inspeccionable, no una prueba de equivalencia semántica ni de corrección funcional.

## Resumen

Los flujos de trabajo de ingeniería de software, como la reparación restringida, el refinamiento por etapas y la modificación con preservación de la estructura, requieren controlar qué cambia y qué permanece fijo. La generación en el nivel de los tokens ofrece una superficie de control débil para estas operaciones, pues restringe el texto superficial local en lugar de los invariantes estructurales de grano grueso que suelen interesar en ingeniería de software. Estudiamos las variables latentes discretas jerárquicas como representación intermedia inspeccionable de los artefactos de software: un VQ-VAE jerárquico comprime una función de Python de 64 tokens en códigos discretos gruesos y finos, y la generación discreta enmascarada regenera solo determinadas posiciones bajo restricciones parciales. En 2,000 funciones de Python preprocesadas, bloquear cuatro códigos de nivel superior eleva la tasa de análisis sintáctico de 0.453 a 0.591, al tiempo que conserva cambios sustanciales en las posiciones desbloqueadas (libertad de edición: 0.936) y una tasa de unicidad de las muestras casi máxima (diversidad: 0.998). Con un contexto grueso fijo, el refinamiento del nivel inferior es más débil, pero sigue siendo monótono, lo que respalda una interpretación jerárquica de lo grueso a lo fino. En conjunto, estos resultados aportan evidencia inicial de una capa práctica de control que permite regenerar artefactos de software de forma acotada, por encima del nivel de los tokens y con preservación de la estructura.

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

Tipo de contribución Método de control en el espacio latente

5 de julio de 2026 pp. 1406–1407 Póster complementario

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

## Contenido En esta página

## Resultados principales

| Configuración | Tasa de análisis sintáctico | Esqueleto | Firma | Cambio desbloqueado |
| --- | --- | --- | --- | --- |
| Entrada (truncada) | 0.994 | 0.994 | 0.994 | — |
| Reconstrucción del códec | 0.857 | 0.848 | 0.493 | 0 |
| Generación incondicional | 0.453 | 0.08 | 0 | 0.995 |
| Condicional, prefijo k=4 | 0.591 | 0.295 | 0.061 | 0.936 |
| Condicional, tramo de la firma | 0.6 | 0.302 | 0.063 | no comunicado |

**Resultado principal.** El bloqueo de variables latentes de nivel grueso mejora la estabilidad sintáctica sin anular los cambios en la región editable; el resultado demuestra control estructural, no una equivalencia funcional garantizada.

Descargar resultados: [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) Réplica externa: [Ficha del conjunto de datos en Hugging Face](https://huggingface.co/datasets/aogavrilov/inspectable-control-results)

## PDF y cita

**Citar este artículo** BibTeX es el formato recomendado. Todas las variantes siguientes se generan a partir del mismo registro de publicación.

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

Archivos de cita: [Texto APA](https://aogavrilov.com/publications/inspectable-control/citation-apa.txt) [Texto 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) [JSON-LD de Schema.org](https://aogavrilov.com/publications/inspectable-control/metadata.jsonld) [XML OAI-DC](https://aogavrilov.com/publications/inspectable-control/oai-dc.xml) [XML OpenAIRE v4](https://aogavrilov.com/publications/inspectable-control/openaire.xml) [XML MODS](https://aogavrilov.com/publications/inspectable-control/mods.xml) [XML de metadatos JATS 1.4](https://aogavrilov.com/publications/inspectable-control/metadata.jats.xml) [Texto completo en XML JATS 1.4](https://aogavrilov.com/publications/inspectable-control/full-text/article.jats.xml) [RDF Turtle](https://aogavrilov.com/publications/inspectable-control/metadata.ttl) [Conjunto de enlaces (JSON)](https://aogavrilov.com/publications/inspectable-control/linkset.json) [Conjunto de enlaces (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)

Guía completa

## Guía de investigación completa

## Método

## 

El método comprime una función breve de Python en dos niveles de códigos discretos, inmoviliza determinadas posiciones gruesas y regenera las posiciones restantes antes de volver a decodificarlas como código.

1. Codificar Comprimir una función de Python de 64 tokens en 16 códigos de nivel superior y 32 códigos de nivel inferior mediante un VQ-VAE jerárquico.
2. Bloquear Elegir posiciones de código de nivel grueso que representen la estructura que se desea preservar, como un prefijo que abarque el tramo de la firma de la función.
3. Regenerar Ejecutar la generación discreta enmascarada únicamente sobre las posiciones desbloqueadas y volver a decodificar la jerarquía completada como código fuente.
4. Inspeccionar Antes de aceptar una regeneración, medir la tasa de análisis sintáctico, los indicadores indirectos estructurales, los cambios en las posiciones desbloqueadas y la unicidad de las muestras.

![Determinados códigos de grano grueso del programa permanecen fijos, mientras que los códigos discretos finos enmascarados se regeneran y decodifican para obtener una función de Python modificada.](https://aogavrilov.com/publications/inspectable-control/hierarchical-discrete-latent-code-editing.svg)

**La edición jerárquica de códigos latentes discretos preserva la estructura de grano grueso seleccionada del programa mientras regenera los códigos finos de la región editable.* Fuente: [Diagrama explicativo elaborado por el autor a partir del método y los resultados publicados.](https://doi.org/10.1145/3803437.3807386) . Condiciones de reutilización: [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) . Atribución sugerida: Gavrilov et al. (2026), Inspectable Control for Structure-Preserving Software Regeneration. [Descargar SVG](https://aogavrilov.com/publications/inspectable-control/hierarchical-discrete-latent-code-editing.svg) .*

### Idea principal

El control se aplica a una representación aprendida situada por encima de los tokens: las posiciones latentes de nivel grueso definen lugares explícitos donde se puede fijar la estructura, mientras los detalles de implementación próximos permanecen editables.

### Diferencias respecto de enfoques afines

Las restricciones aplicadas a la instrucción o a los tokens actúan sobre el texto superficial. La interfaz propuesta ofrece puntos discretos de control, tanto gruesos como finos, y mide el equilibrio resultante entre estabilidad y libertad.

### Novedad

El trabajo introduce y evalúa una capa jerárquica de control latente inspeccionable para la regeneración acotada de artefactos de software.

## Preguntas que este artículo ayuda a responder

## 

Abra una pregunta para obtener una respuesta concisa fundamentada en el artículo. Los límites detallados de la evidencia figuran en Limitaciones.

1. ¿Cómo puede la IA editar código sin reescribirlo todo? El artículo estudia la regeneración parcial de código por encima del nivel de tókenes. Un VQ-VAE jerárquico representa una función breve de Python mediante códigos discretos gruesos y finos; se bloquean determinadas posiciones gruesas y la generación discreta enmascarada modifica únicamente las posiciones latentes restantes antes de decodificarlas. Esto proporciona un límite de preservación explícito en vez de regenerar la función completa.
2. ¿Qué métodos preservan la estructura del programa durante la generación de código? Este trabajo evalúa el control latente discreto jerárquico. Las posiciones latentes gruesas pueden fijarse mientras se regeneran las posiciones desbloqueadas; a continuación se miden la tasa de análisis sintáctico y los indicadores indirectos estructurales. La evidencia se refiere a la estabilidad estructural probabilística en funciones breves de Python; no demuestra la preservación exacta del AST, la equivalencia semántica ni la corrección funcional.
3. ¿Pueden las variables latentes discretas jerárquicas proporcionar un control localizado sobre el código? En el experimento descrito con 2,000 funciones, bloquear cuatro códigos de nivel superior aumentó la tasa de análisis sintáctico de 0.453 a 0.591. Al mismo tiempo, cambiaron 0.936 de las posiciones desbloqueadas y las muestras condicionales fueron únicas en una proporción de 0.998. Estos resultados constituyen indicios preliminares de que las restricciones latentes gruesas pueden preservar parte de la estructura sin eliminar la libertad de edición local ni la diversidad de las muestras.
4. ¿Cómo puede la generación de código equilibrar la estabilidad estructural y la diversidad? El artículo evalúa conjuntamente la estabilidad y la libertad, en lugar de optimizar únicamente la validez. El bloqueo de códigos gruesos aumenta la validez sintáctica, mientras que el cambio en las posiciones desbloqueadas sigue siendo elevado y las muestras condicionales permanecen casi por completo únicas. El resultado demuestra un equilibrio cuantificable entre estabilidad y libertad en la configuración evaluada, no un óptimo universal.
5. ¿Qué relación guarda este trabajo con la edición de código asistida por LLM? El modelo evaluado es un VQ-VAE jerárquico con generación discreta enmascarada, no un gran modelo de lenguaje. No obstante, el problema de control resulta pertinente para la edición asistida por LLM, pues los cambios innecesarios fuera de la región solicitada constituyen una preocupación práctica. El artículo aporta un mecanismo complementario en el espacio latente y un marco de evaluación, no un banco de pruebas de edición con LLM.

## Comparación con enfoques afines

## 

| Capacidad | Control en el nivel de los tókenes | Control latente jerárquico |
| --- | --- | --- |
| Fijar la estructura gruesa | Limitado | Bloqueo nativo de códigos gruesos |
| Regeneración parcial | Restricciones superficiales frágiles | Remuestreo enmascarado de los códigos seleccionados |
| Puntos de control inspeccionables | Sin capa intermedia explícita | Posiciones discretas de nivel grueso y fino |
| Evidencia aportada por este artículo | No evaluado como línea base completa | Diagnósticos de estabilidad sintáctica y libertad de edición |

La tabla describe las interfaces y la evidencia medida en el estudio; no reivindica corrección funcional ni superioridad universal.

## Pertinencia y alcance

## 

El artículo resulta especialmente pertinente para trabajos que necesitan controlar explícitamente qué puede modificar una transformación de código asistida por IA y qué partes del programa deben permanecer estables.

1. Generación de código controlable con preservación de la estructura
2. Reparación localizada de programas y refactorización acotada
3. Representaciones discretas jerárquicas para código fuente
4. Generación discreta enmascarada de código fuente
5. Control latente de artefactos de software

## Limitaciones

## 

- El estudio se limita a funciones breves de Python truncadas a 64 tokens.
- La evaluación emplea decodificación argmax e indicadores indirectos sintácticos o estructurales, en lugar de pruebas de equivalencia funcional.
- La preservación exacta de las firmas sigue siendo limitada.
- El control de nivel inferior es más débil que el control de nivel superior.
- Las posiciones latentes aún no están alineadas con regiones semánticas como tramos del AST, firmas o la estructura del flujo de control.
- Los resultados no demuestran la corrección en tareas prácticas de reparación, refactorización o modificación a escala de repositorio.

## Referencias citadas en el artículo

## 

Estas entradas corresponden a la sección numerada de referencias del PDF del artículo.

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 .

## Recursos y reproducibilidad

## 

### Declaración sobre los datos

## Versiones

## 

1. **Versión publicada** [ACM FSE Companion, 2026](https://doi.org/10.1145/3803437.3807386)
2. **Manuscrito del autor** [Manuscrito definitivo con texto accesible, lista final de autores y DOI](https://aogavrilov.com/publications/inspectable-control/paper.pdf)
3. **Réplica externa del texto completo** [Manuscrito del autor con licencia CC BY 4.0 en Hugging Face](https://huggingface.co/datasets/aogavrilov/inspectable-control-results/resolve/main/paper.pdf)
4. **Abrir el registro del repositorio** [Registro de Zenodo indexado por OpenAIRE](https://zenodo.org/records/21605395)
5. **Abrir el texto completo en el repositorio** [Manuscrito del autor en Zenodo con licencia CC BY 4.0; textualmente equivalente al manuscrito local](https://zenodo.org/records/21605395/files/fse2026-posters-final11%20%284%29.pdf?download=1)
6. **Recursos del autor** [Póster y presentación de diapositivas](https://aogavrilov.com/publications/inspectable-control/media/)
7. **Registro bibliográfico** [DBLP](https://dblp.org/rec/conf/sigsoft/GavrilovGMMM26)
8. **Abrir el registro académico** [OpenAlex](https://openalex.org/W7169573479)
9. **Registro del grafo de citas** [Semantic Scholar](https://www.semanticscholar.org/paper/93c3de037596ce177d9d882d214ccad5c5405b00)
10. **Texto completo compartido por el autor** [ResearchGate](https://www.researchgate.net/publication/410435483_Inspectable_Control_for_Structure-Preserving_Software_Regeneration)
11. **Resumen en lenguaje claro** [Kudos](https://www.growkudos.com/publications/10.1145%252F3803437.3807386/reader)

El DOI publicado es el identificador bibliográfico principal. Esta página sigue siendo la única URL canónica del proyecto en todas sus versiones.

## Publicación relacionada

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

Leer la [Edición controlable de código](https://aogavrilov.com/es/projects/discrete-latent-generation/) guía de investigación. [Sobre el autor](https://aogavrilov.com/about/) .

### Notas de investigación específicas

Respuestas específicas para cada intención, con límites de evidencia y enlaces a este artículo.

- [Modificación localizada de código mediante modelos generativos](https://aogavrilov.com/es/research-notes/localized-code-modification-generative-models/)
- [Generación restringida de código para la ingeniería de software](https://aogavrilov.com/es/research-notes/constrained-code-generation-software-engineering/)
- [Refactorización asistida por IA: métodos y evidencia](https://aogavrilov.com/es/research-notes/ai-assisted-refactoring-evidence/)
- [La generación predecible de código requiere un contrato de preservación](https://aogavrilov.com/es/research-notes/predictable-code-generation-preservation-contract/)
