Cadena DU ( eng. Cadena DU, cadena de uso de definición, cadena de uso de definición - cadena "definición - uso" ) - estructura de datos utilizada en el análisis de flujo de datospara encontrar los lugares donde se usa la variable definida o para encontrar todos los lugares de definiciones de los valores de las variables incluidas en la expresión [1] . Esta estructura asigna a cada definición de variable una lista de sentencias a las que se puede acceder desde la definición y que contienen la variable. De manera similar, la cadena UD ( eng. UD chain, use-def chain, use-definition chain ) contiene, para cada caso de uso de una variable, los lugares de su definición, desde los cuales se puede llegar al lugar de uso [2] .
Las cadenas UD y DU se utilizan en el análisis de código estático , conocido como análisis de flujo de datos. La presencia de cadenas UD y DU para un programa es un requisito previo para muchas optimizaciones del compilador , incluida la propagación constante y la eliminación de subexpresiones comunes . El resultado del análisis de flujo de datos a menudo se puede representar como la imposición de cadenas en el gráfico de flujo de control del código de programa analizado [2] .
Una mejora sobre la idea de las cadenas UD/DU es la forma de Asignación Única Estática ( SSA ) . El formulario SSA es una representación intermedia donde cada variable tiene una sola definición en el programa. Cabe señalar que una definición (estática) puede estar en un bucle ejecutándose muchas veces, por lo que SSA no debe confundirse con una sola asignación [2] .