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.

Alexey Gavrilov1Alan-Barsag Gazzaev1Mikhail Mozikov2Ilya Makarov2Sergey Muravyov1

  1. Universidad ITMO, San Petersburgo, Federación de Rusia
  2. AXXX, Moscú, Federación de Rusia

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

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

Compartir este artículoCompartir

Resultados principales

Resultados principales de Control inspeccionable para la regeneración de software con preservación de la estructura
ConfiguraciónTasa de análisis sintácticoEsqueletoFirmaCambio desbloqueado
Entrada (truncada)0.9940.9940.994
Reconstrucción del códec0.8570.8480.4930
Generación incondicional0.4530.0800.995
Condicional, prefijo k=40.5910.2950.0610.936
Condicional, tramo de la firma0.60.3020.063no 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.

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.

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

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

DOI: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.
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..Condiciones de reutilización: CC BY 4.0.Atribución sugerida: Gavrilov et al. (2026), Inspectable Control for Structure-Preserving Software Regeneration. Descargar 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

Comparación factual de Control inspeccionable para la regeneración de software con preservación de la estructura con enfoques afines
CapacidadControl en el nivel de los tókenesControl latente jerárquico
Fijar la estructura gruesaLimitadoBloqueo nativo de códigos gruesos
Regeneración parcialRestricciones superficiales frágilesRemuestreo enmascarado de los códigos seleccionados
Puntos de control inspeccionablesSin capa intermedia explícitaPosiciones discretas de nivel grueso y fino
Evidencia aportada por este artículoNo evaluado como línea base completaDiagnó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

Véanse las limitaciones y los límites de la evidencia

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

Editorial
ACM
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

  1. Versión publicadaACM FSE Companion, 2026
  2. Abrir el registro del repositorioRegistro de Zenodo indexado por OpenAIRE
  3. Registro bibliográficoDBLP
  4. Abrir el registro académicoOpenAlex
  5. Registro del grafo de citasSemantic Scholar
  6. Texto completo compartido por el autorResearchGate
  7. 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.