Inspectable Control for Structure-Preserving Software Regeneration
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.
Leer el artículo completo en HTMLTexto 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.
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
pp. 1406–1407Póster complementario
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.
- Conjunto de datos
- 2,000 funciones de Python preprocesadas procedentes de un subconjunto de CodeParrot Clean
- Tamaño de la muestra
- 2,000 funciones de Python preprocesadas; la tasa de unicidad de las muestras condicionales es de 0.998.
- Métricas
- Tasa de análisis sintáctico; indicadores indirectos de preservación del esqueleto y las firmas; tasa de cambio en posiciones desbloqueadas; unicidad y entropía de las muestras
- Incertidumbre
- El estudio, de dos páginas, presenta estimaciones puntuales sin intervalos de confianza ni análisis estadístico con múltiples semillas.
- Condiciones
- Funciones de 64 tokens, decodificación argmax, 16 códigos de nivel superior y 32 de nivel inferior; el bloqueo completo recupera exactamente la reconstrucción del códec.
Descargar resultados:CSVJSONMarkdownRéplica externa:Ficha del conjunto de datos en Hugging Face
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},
}
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 -
Archivos de cita:Texto APATexto IEEERISCSL-JSONJSON-LD de Schema.orgXML OAI-DCXML OpenAIRE v4XML MODSXML de metadatos JATS 1.4Texto completo en XML JATS 1.4RDF TurtleConjunto de enlaces (JSON)Conjunto de enlaces (HTTP)RO-Crate
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.
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.
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.
Regenerar
Ejecutar la generación discreta enmascarada únicamente sobre las posiciones desbloqueadas y volver a decodificar la jerarquía completada como código fuente.
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.
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.
¿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.
¿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.
¿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.
¿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.
¿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.
Generación de código controlable con preservación de la estructura
Reparación localizada de programas y refactorización acotada
Representaciones discretas jerárquicas para código fuente
Generación discreta enmascarada de código fuente
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.
- 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.
Recursos y reproducibilidad
- Editorial
- ACM
- PDF local del texto
- Manuscrito final del autor con la lista definitiva de autores y el DOI
- Recursos de la publicación
- Aquí se encuentran disponibles el manuscrito público, las tablas de resultados, la figura explicativa y los archivos de citas. El código de implementación y los puntos de control no se han publicado.
Declaración sobre los datos
- Fuente
- Un subconjunto preprocesado de CodeParrot Clean que contiene 2,000 funciones de Python.
- Licencia
- Este sitio no redistribuye archivos del conjunto de datos; su reutilización sigue sujeta a las licencias del conjunto de datos original CodeParrot y del código fuente.
- Preprocesamiento
- Las funciones de Python se tokenizan y, antes de la codificación jerárquica, se truncan o se rellenan hasta alcanzar 64 tokens.
- División
- El póster presenta un conjunto de evaluación de 2,000 funciones; el artículo público no incluye un manifiesto inmutable de la partición entre entrenamiento y validación.
- Formato
- Funciones en código fuente Python, secuencias de tokens al estilo de GPT, secuencias de código de nivel superior de longitud 16 y secuencias de nivel inferior de longitud 32.
- Versión / suma de comprobación
- El artículo de dos páginas no proporciona una suma de comprobación del conjunto de datos ni un identificador inmutable de la instantánea.
- Adquisición
- No se publica un script público de adquisición junto con la página de la publicación.
- Límites de uso
- La muestra no es representativa del software a escala de repositorio, de varios lenguajes de programación ni de tareas de reparación verificadas por su comportamiento.
Versiones
- Versión publicadaACM FSE Companion, 2026
- Manuscrito del autorManuscrito definitivo con texto accesible, lista final de autores y DOI
- Réplica externa del texto completoManuscrito del autor con licencia CC BY 4.0 en Hugging Face
- Abrir el registro del repositorioRegistro de Zenodo indexado por OpenAIRE
- Abrir el texto completo en el repositorioManuscrito del autor en Zenodo con licencia CC BY 4.0; textualmente equivalente al manuscrito local
- Recursos del autorPóster y presentación de diapositivas
- Registro bibliográficoDBLP
- Abrir el registro académicoOpenAlex
- Registro del grafo de citasSemantic Scholar
- Texto completo compartido por el autorResearchGate
- Resumen en lenguaje claroKudos
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.