A definíciók elérése az egyik leggyakoribb és leghasznosabb adatáramlási séma . Ha pontosan tudjuk, hogy a programban az egyes változók hol definiálhatók , amikor a vezérlési folyamat eléri az egyes pontokat , sok információt kaphatunk erről a változóról. A fordító különösen ki tudja deríteni, hogy a pontban van-e konstans , és a hibakereső jelentheti egy inicializálatlan változó lehetséges használatát az [1] pontban . xpxppx
Azt mondjuk, hogy a definíció deléri a pontot p, ha van egy olyan út a közvetlenül követő dponttól a pontig p, amely dezen az úton nem törli ki. Megsemmisítjük a változó definícióját x, ha van egy másik definíció xvalahol az útvonal mentén. Intuitív módon, ha degy változó definíciója xeléri a pontot p, akkor ez lehet az a hely, ahol a -ban használt érték dutoljára van meghatározva . xp
A változódefiníció xolyan utasítás, amely értéket rendel vagy rendelhet hozzá egy változóhoz x. A programelemzésnek konzervatívnak kell lennie: ha nem tudjuk, hogy egy utasítás ad-e sértéket egy változóhoz x, akkor fel kell tételeznünk, hogy képes erre, pl. xhogy az utasítás utáni változónak svagy az utasítás előtti eredeti értéke vagy az [1]s által létrehozott új érték lehet . s
Vegyük például a következő kódot:
d1 : y := 3 d2 : x := yahol a definíció d1eléri a definíciót d2. A következő példában azonban:
d1 : y := 3 d2 : y := 4 d3 : x := ya definíció d1nem éri el a definíciót d3, mert a definíció d2megsemmisíti a változó definícióját a y-ban d1.