# La generación predecible de código requiere un contrato de preservación

Canonical HTML: https://aogavrilov.com/es/research-notes/predictable-code-generation-preservation-contract/

Document language: es

NOTA DE INVESTIGACIÓN

Por qué el muestreo determinista no basta y cómo las propiedades protegidas observables y las comprobaciones de aceptación permiten someter a prueba el comportamiento de la generación de código.

Publicado 30 de julio de 2026 [Alexey Gavrilov](https://aogavrilov.com/about/)

RESPUESTA DIRECTA

## ¿Qué hace que la generación de código sea predecible y no meramente controlable?

La predictibilidad exige un contrato observable, definido antes de la generación, que establezca qué puede cambiar, qué debe permanecer estable, cómo se medirá cada propiedad y cuándo se rechazará una salida. Una instrucción, una semilla, una máscara, una gramática o un código latente fijos son solo mecanismos.

## Por qué importa esta distinción

El método y la garantía que se afirma ofrecer deben referirse al mismo límite observable.

La generación determinista repite un resultado bajo condiciones fijas. La generación predecible permite verificar una propiedad declarada: por ejemplo, que una firma de API permanezca inalterada, que las ediciones se limiten a una región, que la sintaxis siga siendo válida o que un conjunto de pruebas continúe superándose.

Esta distinción es importante porque una entrada de control no define su efecto. Bloquear una posición latente, fijar una semilla o restringir una gramática puede facilitar la inspección de la generación, pero la propiedad protegida debe medirse igualmente después de la decodificación.

## Un procedimiento práctico

1. Declarar las propiedades protegidas Indique las regiones del código fuente, estructuras, interfaces, comportamientos o distribuciones que deben mantenerse dentro de una tolerancia definida.
2. Elegir un mecanismo de control adecuado Emplee reutilización del código fuente, máscaras de edición, restricciones formales, bloqueo latente o el esquema de propuesta y validación según la propiedad que se desee proteger.
3. Definir la aceptación antes del muestreo Especifique el análisis sintáctico, la compilación, las pruebas, las comprobaciones estructurales, los umbrales de localidad y los criterios de éxito de la tarea antes de examinar los resultados.
4. Medir el comportamiento en ejecuciones repetidas Informar sobre la aceptación, el rechazo, la estabilidad, la diversidad y la incertidumbre en ejecuciones repetidas, en lugar de basarse en un único resultado ilustrativo.

## Evidencia que debe requerirse

Una afirmación solo es tan sólida como la propiedad medida tras la generación o la decodificación.

- Las propiedades protegidas y las editables se especifican por separado.
- Toda garantía afirmada cuenta con una prueba o métrica observable.
- El éxito de la tarea se evalúa junto con la estabilidad.
- Se muestran la variabilidad entre ejecuciones repetidas y las tasas de rechazo.
- Las propiedades no medidas quedan explícitamente excluidas de la afirmación.

### Qué documenta el estudio enlazado

- El experimento enlazado presenta las posiciones discretas jerárquicas como una superficie de control inspeccionable para funciones breves de Python.
- Bloquear cuatro posiciones de nivel superior mejoró la tasa de análisis sintáctico, a la vez que mantuvo una elevada tasa de cambio en las posiciones desbloqueadas y una alta unicidad de las muestras.
- El artículo presenta estos resultados como evidencia probabilística preliminar; no afirma una preservación exacta del AST, equivalencia semántica, corrección funcional ni predictibilidad a escala de repositorio.

[Leer el resumen de la publicación](https://aogavrilov.com/es/publications/inspectable-control/) [Buscar en el texto completo del artículo](https://aogavrilov.com/publications/inspectable-control/full-text/)

## Límite del alcance

- La predictibilidad depende de cada propiedad: un sistema puede ser predecible en cuanto a la sintaxis e impredecible en cuanto al comportamiento.
- La decodificación determinista puede repetir la misma edición errónea o excesivamente amplia.
- El experimento disponible en el sitio no ofrece garantías más allá del entorno medido de funciones breves.

## Fuentes principales y afines

Consulte los artículos enlazados para conocer los métodos originales, las mediciones y las limitaciones declaradas.

1. [Inspectable Control for Structure-Preserving Software Regeneration](https://aogavrilov.com/es/publications/inspectable-control/) Experimento principal acotado y límites declarados de la evidencia.
2. [EfficientEdit: Accelerating Code Editing via Edit-Oriented Speculative Decoding](https://arxiv.org/abs/2506.02780) Un mecanismo orientado a la edición que reutiliza los segmentos no modificados del código fuente.
3. [Constrained Decoding of Diffusion LLMs with Context-Free Grammars](https://arxiv.org/abs/2508.10111) Un ejemplo de mecanismo con una restricción formal explícita.

Mantenido por Alexey Gavrilov . Esta página resume la evidencia existente y no añade ningún resultado experimental más allá de las fuentes citadas.
