A definíciók elérése

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

A kifejezés jelentése

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

Példa

Vegyük például a következő kódot:

d1 : y := 3 d2 : x := y

ahol 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 := y

a 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.

Jegyzetek

  1. 1 2 Összeállítók: alapelvek, technológiák és eszközök, 2008 , p. 725.

Irodalom