DU-kedja ( eng. DU-kedja, def-use-kedja, definition-use-kedja - kedja "definition - use" ) - datastruktur som används i dataflödesanalysför att hitta platserna där den definierade variabeln används eller för att hitta alla definitionsplatser för värdena för variablerna som ingår i uttrycket [1] . Denna struktur tilldelar varje variabeldefinition en lista med påståenden som kan nås från definitionen och som innehåller variabeln. På liknande sätt innehåller UD-kedjan ( eng. UD-kedja, use-def chain, use-definition chain ), för varje användningsfall av en variabel, platserna för dess definition, från vilka användningsplatsen kan nås [2] .
UD- och DU-kedjor används i statisk kodanalys , känd som dataflödesanalys. Närvaron av UD- och DU-kedjor för ett program är en förutsättning för många kompilatoroptimeringar , inklusive konstant spridning och borttagning av vanliga underuttryck . Resultatet av dataflödesanalys kan ofta representeras som införandet av kedjor på kontrollflödesdiagrammet för den analyserade programkoden [2] .
En förbättring av idén med UD/DU-kedjor är formen av Static Single Assignment ( SSA ) . SSA-formuläret är en mellanrepresentation där varje variabel endast har en definition i programmet. Det bör noteras att en (statisk) definition kan vara i en loop som exekveras många gånger, så SSA ska inte förväxlas med enkel tilldelning [2] .