Cadena de definición de uso


Dentro de la informática , una Cadena de definición de uso ( Cadena UD ) es una estructura de datos que consiste en un uso, U, de una variable , y todas las definiciones, D, de esa variable que pueden llegar a ese uso sin ninguna otra definición intermedia. Una cadena UD generalmente significa la asignación de algún valor a una variable.

Una contraparte de una Cadena UD es una Cadena de Definición-Uso ( Cadena DU ), que consta de una definición, D, de una variable y todos los usos, U, accesibles desde esa definición sin ninguna otra definición intermedia.

Tanto las cadenas UD como las DU se crean utilizando una forma de análisis de código estático conocida como análisis de flujo de datos . Conocer las cadenas use-def y def-use para un programa o subprograma es un requisito previo para muchas optimizaciones del compilador , incluida la propagación constante y la eliminación de subexpresiones comunes .

Hacer las cadenas use-define o define-use es un paso en el análisis de vida , de modo que las representaciones lógicas de todas las variables puedan identificarse y rastrearse a través del código.

Observe que xse le asigna un valor en tres puntos (marcados A, B y C). Sin embargo, en el punto marcado como "1", la cadena use-def for xdebe indicar que su valor actual debe haber venido de la línea B (y su valor en la línea B debe haber venido de la línea A). Por el contrario, en el punto marcado como "2", la cadena use-def para xindica que su valor actual debe provenir de la línea C. Dado que el valor de xen el bloque 2 no depende de ninguna definición en el bloque 1 o anterior, xpodría como bien habrá una variable diferente allí; en términos prácticos, es una variable diferente, llámela x2.

El proceso de dividir xen dos variables separadas se llama división de rango en vivo . Véase también formulario de asignación individual estático .