# SYK 3 ## Zadanie 1 ![](https://i.imgur.com/Yp9MREP.png) ![](https://i.imgur.com/sethvci.png) $RD_{\circ}(1) = \{(x,?), (y,?), (z,?), (i,?), (t,?)\}$ - nie wiemy nic o niczym $RD_{\bullet}(1) = \{(x,1), (y,?), (z,?), (i,?), (t,?)\}$ - wiemy że w L=1 nadpisaliśmy x $RD_{\circ}(2) = \{(x,1), (y,?), (z,?), (i,?), (t,?)\}$ - to samo co poprzedni OUT $RD_{\bullet}(2) = \{(x,1), (y,2), (z,?), (i,?), (t,?)\}$ - wiemy że w L=2 nadpisaliśmy y $RD_{\circ}(3) = \{(x,1), (y,2), (z,?), (i,?), (t,?)\}$- to samo co poprzedni OUT $RD_{\bullet}(3) = \{(x,1), (y,2), (z,?), (i,3), (t,?)\}$ - wiemy że w L=3 nadpisaliśmy i $RD_{\circ}(4) = \{(x,1), (x,6), (y,2), (y,7), (z,?), (i,3), (i,8), (t,?) (t,5)\}$ - x może pochodzić zarówno z 1 jak z 6 itd. dla reszty zmiennych $RD_{\bullet}(4) = \{(x,1), (x,6), (y,2), (y,7), (z,?), (i,3), (i,8), (t,?) (t,5)\}$ - nic się nie zmieniło $RD_{\circ}(5) = RD_{\bullet}(4) = \{(x,1), (x,6), (y,2), (y,7), (z,?), (i,3), (i,8), (t,?) (t,5)\}$ $RD_{\bullet}(5) = \{(x,1), (x,6), (y,2), (y,7), (z,?), (i,3), (i,8), (t,5)\}$ $RD_{\circ}(6) = \{(x,1), (x,6), (y,2), (y,7), (z,?), (i,3), (i,8), (t,5)\}$ $RD_{\bullet}(6) = \{(x,6), (y,2), (y,7), (z,?), (i,3), (i,8), (t,5)\}$ $RD_{\circ}(7) = \{(x,6), (y,2), (y,7), (z,?), (i,3), (i,8), (t,5)\}$ $RD_{\bullet}(7) = \{(x,6), (y,7), (z,?), (i,3), (i,8), (t,5)\}$ $RD_{\circ}(8) = \{(x,6), (y,7), (z,?), (i,3), (i,8), (t,5)\}$ $RD_{\bullet}(8) = \{(x,6), (y,7), (z,?), (i,8), (t,5)\}$ $RD_{\circ}(9) = RD_{\bullet}(4) = \{(x,1), (x,6), (y,2), (y,7), (z,?), (i,3), (i,8), (t,?), (t,5)\}$ $RD_{\bullet}(9) = \{(x,1), (x,6), (y,9), (z,?), (i,3), (i,8), (t,?), (t,5)\}$ - wiemy że w L=9 nadpisaliśmy y ## Zadanie 2 ![](https://i.imgur.com/EpYPglw.png) $RD_{\circ}(1) = \{(x,?), (y,?), (z,?), (i,?), (t,?)\}$ $RD_{\bullet}(1) = RD_{\circ}(1) \setminus \{(x,?)\} \bigcup \{(x,1)\} =\{(x,1), (y,?), (z,?), (i,?), (t,?)\}$ $RD_{\circ}(2) = RD_{\bullet}(1)$ $RD_{\bullet}(2) = RD_{\circ}(2) \setminus \{(y,?)\}\ \bigcup \{(y,2)\} = \{(x,1), (y,2), (z,?), (i,?), (t,?)\}$ $RD_{\circ}(3) = RD_{\bullet}(2)$ $RD_{\bullet}(3) = RD_{\circ}(3) \setminus \{(i,?)\}\ \bigcup \{(i,3)\} = \{(x,1), (y,2), (z,?), (i,3), (t,?)\}$ $RD_{\circ}(4) = RD_{\bullet}(3) \bigcup RD_{\bullet}(8) = \{(x,1), (x,6), (y,2), (y,7), (z,?), (i,3), (i,8), (t,?) (t,5)\}$ $RD_{\bullet}(4) = RD_{\circ}(4)$ $RD_{\circ}(5) = RD_{\bullet}(4)$ $RD_{\bullet}(5) = RD_{\circ}(5) \setminus \{(t,?)\} \bigcup \{(t,5)\} = \{(x,1), (x,6), (y,2), (y,7), (z,?), (i,3), (i,8), (t,5)\}$ $RD_{\circ}(6) = RD_{\bullet}(5)$ $RD_{\bullet}(6) = RD_{\circ}(6) \setminus \{(x,1), (x,6)\} \bigcup \{(x,6)\} = \{(x,6), (y,2), (y,7), (z,?), (i,3), (i,8), (t,5)\}$ $RD_{\circ}(7) = RD_{\bullet}(6)$ $RD_{\bullet}(7) = RD_{\circ}(7) \setminus \{(y,7),(7,2)\} \bigcup \{(y,7)\} = \{(x,6), (y,7), (z,?), (i,3), (i,8), (t,5)\}$ $RD_{\circ}(8) = RD_{\bullet}(7)$ $RD_{\bullet}(8) = RD_{\circ}(8) \setminus \{(i,3),(i,8)\} \bigcup \{(i,8)\} = \{(x,6), (y,7), (z,?), (i,8), (t,5)\}$ $RD_{\circ}(9) = RD_{\bullet}(4)$ $RD_{\bullet}(9) = RD_{\circ}(9) \setminus \{(y,2),(y,7)\} \bigcup \{(y,9)\} = \{(x,1), (x,6), (y,9), (z,?), (i,3), (i,8), (t,?) (t,5)\}$ ## Zadanie 3 --- ### Etap 0: $RD_{\circ}(1) = \emptyset$ $RD_{\bullet}(1) = \emptyset$ $RD_{\circ}(2) = \emptyset$ $RD_{\bullet}(2) = \emptyset$ $RD_{\circ}(3) = \emptyset$ $RD_{\bullet}(3) = \emptyset$ $RD_{\circ}(4) = \emptyset$ $RD_{\bullet}(4) = \emptyset$ $RD_{\circ}(5) = \emptyset$ $RD_{\bullet}(5) = \emptyset$ $RD_{\circ}(6) = \emptyset$ $RD_{\bullet}(6) = \emptyset$ $RD_{\circ}(7) = \emptyset$ $RD_{\bullet}(7) = \emptyset$ $RD_{\circ}(8) = \emptyset$ $RD_{\bullet}(8) = \emptyset$ $RD_{\circ}(9) = \emptyset$ $RD_{\bullet}(9) = \emptyset$ ### Etap 1: $RD_{\circ}(1) = \{(x,?), (y,?), (z,?), (i,?), (t,?)\}$ $RD_{\bullet}(1) = \{(x,1)\}$ $RD_{\circ}(2) = \emptyset$ $RD_{\bullet}(2) = \{(y,2)\}$ $RD_{\circ}(3) = \emptyset$ $RD_{\bullet}(3) = \{(i,3)\}$ $RD_{\circ}(4) = \emptyset$ $RD_{\bullet}(4) = \emptyset$ $RD_{\circ}(5) = \emptyset$ $RD_{\bullet}(5) = \{(t,5)\}$$ $RD_{\circ}(6) = \emptyset$ $RD_{\bullet}(6) = \{(x,6)\}$ $RD_{\circ}(7) = \emptyset$ $RD_{\bullet}(7) = \{(y,7)\}$ $RD_{\circ}(8) = \emptyset$ $RD_{\bullet}(8) = \{(i,8)\}$ $RD_{\circ}(9) = \emptyset$ $RD_{\bullet}(9) = \{(y,9)\}$ ### Etap 2: $RD_{\circ}(1) = \{(x,?), (y,?), (z,?), (i,?), (t,?)\}$ // NIC $RD_{\bullet}(1) = \{(x,1), (y,?), (z,?), (i,?), (t,?)\}$ $RD_{\circ}(2) = \{(x,1)\}$ $RD_{\bullet}(2) = \{(y,2)\}$ $RD_{\circ}(3) = \{(y,2)\}$ $RD_{\bullet}(3) = \{(i,3)\}$ $RD_{\circ}(4) = \{(i,3),(i,8)\}$ $RD_{\bullet}(4) = \emptyset$ $RD_{\circ}(5) = \emptyset$ $RD_{\bullet}(5) = \{(t,5)\}$ $RD_{\circ}(6) = \{(t,5)\}$ $RD_{\bullet}(6) = \{(x,6)\}$ $RD_{\circ}(7) = \{(x,6)\}$ $RD_{\bullet}(7) = \{(y,7)\}$ $RD_{\circ}(8) = \{(y,7)\}$ $RD_{\bullet}(8) = \{(i,8)\}$ $RD_{\circ}(9) = \emptyset$ $RD_{\bullet}(9) = \{(y,9)\}$ ### Etap 3: $RD_{\circ}(1) = \{(x,?), (y,?), (z,?), (i,?), (t,?)\}$ $RD_{\bullet}(1) = \{(x,1), (y,?), (z,?), (i,?), (t,?)\}$ $RD_{\circ}(2) = \{(x,1), (y,?), (z,?), (i,?), (t,?)\}$ $RD_{\bullet}(2) = \{(x,1),(y,2)\}$ $RD_{\circ}(3) = \{(y,2)\}$ $RD_{\bullet}(3) = \{(y,2),(i,3)\}$ $RD_{\circ}(4) = \{(i,3),(i,8)\}$ $RD_{\bullet}(4) = \{(i,3),(i,8)\}$ $RD_{\circ}(5) = \emptyset$ $RD_{\bullet}(5) = \{(t,5)\}$ $RD_{\circ}(6) = \{(t,5)\}$ $RD_{\bullet}(6) = \{(t,5)(x,6)\}$ $RD_{\circ}(7) = \{(x,6)\}$ $RD_{\bullet}(7) = \{(x,6),(y,7)\}$ $RD_{\circ}(8) = \{(y,7)\}$ $RD_{\bullet}(8) = \{(y,7),(i,8)\}$ $RD_{\circ}(9) = \emptyset$ $RD_{\bullet}(9) = \{(y,9)\}$ ### Etap 4: $RD_{\circ}(1) = \{(x,?), (y,?), (z,?), (i,?), (t,?)\}$ $RD_{\bullet}(1) = \{(x,1), (y,?), (z,?), (i,?), (t,?)\}$ $RD_{\circ}(2) = \{(x,1), (y,?), (z,?), (i,?), (t,?)\}$ $RD_{\bullet}(2) = \{(x,1), (y,2), (z,?), (i,?), (t,?)\}$ $RD_{\circ}(3) = \{(x,1), (y,2)\}$ $RD_{\bullet}(3) = \{(y,2),(i,3)\}$ $RD_{\circ}(4) = \{(i,3),(i,8),(y,2),(y,7)\}$ $RD_{\bullet}(4) = \{(i,3),(i,8)\}$ $RD_{\circ}(5) = \{(i,3),(i,8)\}$ $RD_{\bullet}(5) = \{(t,5)\}$ $RD_{\circ}(6) = \{(t,5)\}$ $RD_{\bullet}(6) = \{(t,5)(x,6)\}$ $RD_{\circ}(7) = \{(t,5),(x,6)\}$ $RD_{\bullet}(7) = \{(x,6),(y,7)\}$ $RD_{\circ}(8) = \{(x,6),(y,7)\}$ $RD_{\bullet}(8) = \{(y,7),(i,8)\}$ $RD_{\circ}(9) = \{(i,3),(i,8)\}$ $RD_{\bullet}(9) = \{(y,9)\}$ ### Etap 5: $RD_{\circ}(1) = \{(x,?), (y,?), (z,?), (i,?), (t,?)\}$ $RD_{\bullet}(1) = \{(x,1), (y,?), (z,?), (i,?), (t,?)\}$ $RD_{\circ}(2) = \{(x,1), (y,?), (z,?), (i,?), (t,?)\}$ $RD_{\bullet}(2) = \{(x,1), (y,2), (z,?), (i,?), (t,?)\}$ $RD_{\circ}(3) = \{(x,1), (y,2), (z,?), (i,?), (t,?)\}$ $RD_{\bullet}(3) = \{(x,1),(y,2),(i,3)\}$ $RD_{\circ}(4) = \{(i,3),(i,8),(y,2),(y,7)\}$ $RD_{\bullet}(4) = \{(i,3),(i,8),(y,2),(y,7)\}$ $RD_{\circ}(5) = \{(i,3),(i,8)\}$ $RD_{\bullet}(5) = \{(i,3),(i,8),(t,5)\}$ $RD_{\circ}(6) = \{(t,5)\}$ $RD_{\bullet}(6) = \{(t,5)(x,6)\}$ $RD_{\circ}(7) = \{(t,5),(x,6)\}$ $RD_{\bullet}(7) = \{(t,5),(x,6),(y,7)\}$ $RD_{\circ}(8) = \{(x,6),(y,7)\}$ $RD_{\bullet}(8) = \{(x,6),(y,7),(i,8)\}$ $RD_{\circ}(9) = \{(i,3),(i,8)\}$ $RD_{\bullet}(9) = \{(i,3),(i,8),(y,9)\}$ ### Etap 6: $RD_{\circ}(1) = \{(x,?), (y,?), (z,?), (i,?), (t,?)\}$ $RD_{\bullet}(1) = \{(x,1), (y,?), (z,?), (i,?), (t,?)\}$ $RD_{\circ}(2) = \{(x,1), (y,?), (z,?), (i,?), (t,?)\}$ $RD_{\bullet}(2) = \{(x,1), (y,2), (z,?), (i,?), (t,?)\}$ $RD_{\circ}(3) = \{(x,1), (y,2), (z,?), (i,?), (t,?)\}$ $RD_{\bullet}(3) = \{(x,1), (y,2), (z,?), (i,3), (t,?)\}$ $RD_{\circ}(4) = \{(x,1),(x,6), (i,3),(i,8),(y,2),(y,7)\}$ $RD_{\bullet}(4) = \{(i,3),(i,8),(y,2),(y,7)\}$ $RD_{\circ}(5) = \{(i,3),(i,8),(y,2),(y,7)\}$ $RD_{\bullet}(5) = \{(i,3),(i,8),(t,5)\}$ $RD_{\circ}(6) = \{(i,3),(i,8),(t,5)\}$ $RD_{\bullet}(6) = \{(t,5)(x,6)\}$ $RD_{\circ}(7) = \{(t,5),(x,6)\}$ $RD_{\bullet}(7) = \{(t,5),(x,6),(y,7)\}$ $RD_{\circ}(8) = \{(t,5),(x,6),(y,7)\}$ $RD_{\bullet}(8) = \{(x,6),(y,7),(i,8)\}$ $RD_{\circ}(9) = \{(i,3),(i,8),(y,2),(y,7)\}$ $RD_{\bullet}(9) = \{(i,3),(i,8),(y,9)\}$ ### Etap 7: $RD_{\circ}(1) = \{(x,?), (y,?), (z,?), (i,?), (t,?)\}$ $RD_{\bullet}(1) = \{(x,1), (y,?), (z,?), (i,?), (t,?)\}$ $RD_{\circ}(2) = \{(x,1), (y,?), (z,?), (i,?), (t,?)\}$ $RD_{\bullet}(2) = \{(x,1), (y,2), (z,?), (i,?), (t,?)\}$ $RD_{\circ}(3) = \{(x,1), (y,2), (z,?), (i,?), (t,?)\}$ $RD_{\bullet}(3) = \{(x,1), (y,2), (z,?), (i,3), (t,?)\}$ $RD_{\circ}(4) = \{(x,1),(x,6), (z,?),(i,3),(i,8),(t,?),(y,2),(y,7)\}$ $RD_{\bullet}(4) = \{(x,1),(x,6), (i,3),(i,8),(y,2),(y,7)\}$ $RD_{\circ}(5) = \{(i,3),(i,8),(y,2),(y,7)\}$ $RD_{\bullet}(5) = \{(i,3),(i,8),(y,2),(y,7),(t,5)\}$ $RD_{\circ}(6) = \{(i,3),(i,8),(t,5)\}$ $RD_{\bullet}(6) = \{(i,3),(i,8),(t,5)(x,6)\}$ $RD_{\circ}(7) = \{(t,5),(x,6)\}$ $RD_{\bullet}(7) = \{(t,5),(x,6),(y,7)\}$ $RD_{\circ}(8) = \{(t,5),(x,6),(y,7)\}$ $RD_{\bullet}(8) = \{(t,5),(x,6),(y,7),(i,8)\}$ $RD_{\circ}(9) = \{(i,3),(i,8),(y,2),(y,7)\}$ $RD_{\bullet}(9) = \{(i,3),(i,8),(y,9)\}$ ### Etap 8: $RD_{\circ}(1) = \{(x,?), (y,?), (z,?), (i,?), (t,?)\}$ $RD_{\bullet}(1) = \{(x,1), (y,?), (z,?), (i,?), (t,?)\}$ $RD_{\circ}(2) = \{(x,1), (y,?), (z,?), (i,?), (t,?)\}$ $RD_{\bullet}(2) = \{(x,1), (y,2), (z,?), (i,?), (t,?)\}$ $RD_{\circ}(3) = \{(x,1), (y,2), (z,?), (i,?), (t,?)\}$ $RD_{\bullet}(3) = \{(x,1), (y,2), (z,?), (i,3), (t,?)\}$ $RD_{\circ}(4) = \{(x,1),(x,6),(z,?),(i,3),(i,8),(t,?),(t,5),(y,2),(y,7)\}$ $RD_{\bullet}(4) = \{(x,1),(x,6), (z,?),(i,3),(i,8),(t,?),(y,2),(y,7)\}$ $RD_{\circ}(5) = \{(x,1),(x,6), (i,3),(i,8),(y,2),(y,7)\}$ $RD_{\bullet}(5) = \{(i,3),(i,8),(y,2),(y,7),(t,5)\}$ $RD_{\circ}(6) = \{(i,3),(i,8),(y,2),(y,7),(t,5)\}$ $RD_{\bullet}(6) = \{(i,3),(i,8),(t,5),(x,6)\}$ $RD_{\circ}(7) = \{(i,3),(i,8),(t,5)(x,6)\}$ $RD_{\bullet}(7) = \{(t,5),(x,6),(y,7)\}$ $RD_{\circ}(8) = \{(t,5),(x,6),(y,7)\}$ $RD_{\bullet}(8) = \{(t,5),(x,6),(y,7),(i,8)\}$ $RD_{\circ}(9) = \{(x,1),(x,6), (z,?),(i,3),(i,8),(t,?),(y,2),(y,7)\}$ $RD_{\bullet}(9) = \{(i,3),(i,8),(y,9)\}$ ### Etap 9: $RD_{\circ}(1) = \{(x,?), (y,?), (z,?), (i,?), (t,?)\}$ $RD_{\bullet}(1) = \{(x,1), (y,?), (z,?), (i,?), (t,?)\}$ $RD_{\circ}(2) = \{(x,1), (y,?), (z,?), (i,?), (t,?)\}$ $RD_{\bullet}(2) = \{(x,1), (y,2), (z,?), (i,?), (t,?)\}$ $RD_{\circ}(3) = \{(x,1), (y,2), (z,?), (i,?), (t,?)\}$ $RD_{\bullet}(3) = \{(x,1), (y,2), (z,?), (i,3), (t,?)\}$ $RD_{\circ}(4) = \{(x,1),(x,6),(z,?),(i,3),(i,8),(t,?),(t,5),(y,2),(y,7)\}$ $RD_{\bullet}(4) = \{(x,1),(x,6), (z,?),(i,3),(i,8),(t,?),(t,5),(y,2),(y,7)\}$ $RD_{\circ}(5) = \{(x,1),(x,6), (z,?),(i,3),(i,8),(t,?),(y,2),(y,7)\}$ $RD_{\bullet}(5) = \{(x,1),(x,6), (i,3),(i,8),(y,2),(y,7),(t,5)\}$ $RD_{\circ}(6) = \{(i,3),(i,8),(y,2),(y,7),(t,5)\}$ $RD_{\bullet}(6) = \{(i,3),(i,8),(t,5),(y,2),(y,7),(x,6)\}$ $RD_{\circ}(7) = = \{(i,3),(i,8),(t,5),(x,6)\}$ $RD_{\bullet}(7) = \{(i,3),(i,8),(t,5),(x,6),(y,7)\}$ $RD_{\circ}(8) = \{(t,5),(x,6),(y,7)\}$ $RD_{\bullet}(8) = \{(t,5),(x,6),(y,7),(i,8)\}$ $RD_{\circ}(9) = \{(x,1),(x,6), (z,?),(i,3),(i,8),(t,?),(y,2),(y,7)\}$ $RD_{\bullet}(9) = \{(x,1),(x,6), (z,?),(i,3),(i,8),(t,?),(y,9)\}$ ### Etap 10: $RD_{\circ}(1) = \{(x,?), (y,?), (z,?), (i,?), (t,?)\}$ $RD_{\bullet}(1) = \{(x,1), (y,?), (z,?), (i,?), (t,?)\}$ $RD_{\circ}(2) = \{(x,1), (y,?), (z,?), (i,?), (t,?)\}$ $RD_{\bullet}(2) = \{(x,1), (y,2), (z,?), (i,?), (t,?)\}$ $RD_{\circ}(3) = \{(x,1), (y,2), (z,?), (i,?), (t,?)\}$ $RD_{\bullet}(3) = \{(x,1), (y,2), (z,?), (i,3), (t,?)\}$ $RD_{\circ}(4) = \{(x,1),(x,6),(z,?),(i,3),(i,8),(t,?),(t,5),(y,2),(y,7)\}$ $RD_{\bullet}(4) = \{(x,1),(x,6), (z,?),(i,3),(i,8),(t,?),(t,5),(y,2),(y,7)\}$ $RD_{\circ}(5) = \{(x,1),(x,6), (z,?),(i,3),(i,8),(t,?),(t,5),(y,2),(y,7)\}$ $RD_{\bullet}(5) = \{(x,1),(x,6),(z,?),(i,3),(i,8),(t,5),(y,2),(y,7)\}$ $RD_{\circ}(6) = \{(x,1),(x,6), (i,3),(i,8),(y,2),(y,7),(t,5)\}$ $RD_{\bullet}(6) = \{(i,3),(i,8),(t,5),(y,2),(y,7),(x,6)\}$ $RD_{\circ}(7) = \{(i,3),(i,8),(t,5),(y,2),(y,7),(x,6)\}$ $RD_{\bullet}(7) = \{(i,3),(i,8),(t,5),(x,6),(y,7)\}$ $RD_{\circ}(8) = = \{(i,3),(i,8),(t,5),(x,6),(y,7)\}$ $RD_{\bullet}(8) = \{(t,5),(x,6),(y,7),(i,8)\}$ $RD_{\circ}(9) = \{(x,1),(x,6), (z,?),(i,3),(i,8),(t,?),(t,5),(y,2),(y,7)\}$ $RD_{\bullet}(9) = \{(x,1),(x,6), (z,?),(i,3),(i,8),(t,?),(y,9)\}$ ### Etap 11: $RD_{\circ}(1) = \{(x,?), (y,?), (z,?), (i,?), (t,?)\}$ $RD_{\bullet}(1) = \{(x,1), (y,?), (z,?), (i,?), (t,?)\}$ $RD_{\circ}(2) = \{(x,1), (y,?), (z,?), (i,?), (t,?)\}$ $RD_{\bullet}(2) = \{(x,1), (y,2), (z,?), (i,?), (t,?)\}$ $RD_{\circ}(3) = \{(x,1), (y,2), (z,?), (i,?), (t,?)\}$ $RD_{\bullet}(3) = \{(x,1), (y,2), (z,?), (i,3), (t,?)\}$ $RD_{\circ}(4) = \{(x,1),(x,6),(z,?),(i,3),(i,8),(t,?),(t,5),(y,2),(y,7)\}$ $RD_{\bullet}(4) = \{(x,1),(x,6), (z,?),(i,3),(i,8),(t,?),(t,5),(y,2),(y,7)\}$ $RD_{\circ}(5) = \{(x,1),(x,6), (z,?),(i,3),(i,8),(t,?),(t,5),(y,2),(y,7)\}$ $RD_{\bullet}(5) = \{(x,1),(x,6),(z,?),(i,3),(i,8),(t,5),(y,2),(y,7)\}$ $RD_{\circ}(6) = \{(x,1),(x,6),(z,?),(i,3),(i,8),(t,5),(y,2),(y,7)\}$ $RD_{\bullet}(6) = \{(x,6), (i,3),(i,8),(y,2),(y,7),(t,5)\}$ $RD_{\circ}(7) = \{(i,3),(i,8),(t,5),(y,2),(y,7),(x,6)\}$ $RD_{\bullet}(7) = \{(i,3),(i,8),(t,5),(y,7),(x,6)\}$ $RD_{\circ}(8) = \{(i,3),(i,8),(t,5),(x,6),(y,7)\}$ $RD_{\bullet}(8) = \{(t,5),(x,6),(y,7),(i,8)\}$ $RD_{\circ}(9) = \{(x,1),(x,6), (z,?),(i,3),(i,8),(t,?),(t,5),(y,2),(y,7)\}$ $RD_{\bullet}(9) = \{(x,1),(x,6), (z,?),(i,3),(i,8),(t,?),(t,5),(y,9)\}$ ### Etap 12: $RD_{\circ}(1) = \{(x,?), (y,?), (z,?), (i,?), (t,?)\}$ OK $RD_{\bullet}(1) = \{(x,1), (y,?), (z,?), (i,?), (t,?)\}$ OK $RD_{\circ}(2) = \{(x,1), (y,?), (z,?), (i,?), (t,?)\}$ OK $RD_{\bullet}(2) = \{(x,1), (y,2), (z,?), (i,?), (t,?)\}$ OK $RD_{\circ}(3) = \{(x,1), (y,2), (z,?), (i,?), (t,?)\}$ OK $RD_{\bullet}(3) = \{(x,1), (y,2), (z,?), (i,3), (t,?)\}$ OK $RD_{\circ}(4) = \{(x,1),(x,6),(z,?),(i,3),(i,8),(t,?),(t,5),(y,2),(y,7)\}$ OK $RD_{\bullet}(4) = \{(x,1),(x,6),(z,?),(i,3),(i,8),(t,?),(t,5),(y,2),(y,7)\}$ OK $RD_{\circ}(5) = \{(x,1),(x,6), (z,?),(i,3),(i,8),(t,?),(t,5),(y,2),(y,7)\}$ OK $RD_{\bullet}(5) = \{(x,1),(x,6),(z,?),(i,3),(i,8),(t,5),(y,2),(y,7)\}$ OK $RD_{\circ}(6) = \{(x,1),(x,6),(z,?),(i,3),(i,8),(t,5),(y,2),(y,7)\}$ OK $RD_{\bullet}(6) = \{(x,6),(z,?),(i,3),(i,8),(t,5),(y,2),(y,7)\}$ OK $RD_{\circ}(7) = \{(i,3),(i,8),(t,5),(y,2),(y,7),(x,6)\}$ $RD_{\bullet}(7) = \{(i,3),(i,8),(t,5),(y,7),(x,6)\}$ $RD_{\circ}(8) = \{(i,3),(i,8),(t,5),(y,7),(x,6)\}$ $RD_{\bullet}(8) = \{(t,5),(x,6),(y,7),(i,8)\}$ $RD_{\circ}(9) = \{(x,1),(x,6), (z,?),(i,3),(i,8),(t,?),(t,5),(y,2),(y,7)\}$ OK $RD_{\bullet}(9) = \{(x,1),(x,6), (z,?),(i,3),(i,8),(t,?),(t,5),(y,9)\}$ OK ### Etap 13: $RD_{\circ}(1) = \{(x,?), (y,?), (z,?), (i,?), (t,?)\}$ OK $RD_{\bullet}(1) = \{(x,1), (y,?), (z,?), (i,?), (t,?)\}$ OK $RD_{\circ}(2) = \{(x,1), (y,?), (z,?), (i,?), (t,?)\}$ OK $RD_{\bullet}(2) = \{(x,1), (y,2), (z,?), (i,?), (t,?)\}$ OK $RD_{\circ}(3) = \{(x,1), (y,2), (z,?), (i,?), (t,?)\}$ OK $RD_{\bullet}(3) = \{(x,1), (y,2), (z,?), (i,3), (t,?)\}$ OK $RD_{\circ}(4) = \{(x,1),(x,6),(z,?),(i,3),(i,8),(t,?),(t,5),(y,2),(y,7)\}$ OK $RD_{\bullet}(4) = \{(x,1),(x,6),(z,?),(i,3),(i,8),(t,?),(t,5),(y,2),(y,7)\}$ OK $RD_{\circ}(5) = \{(x,1),(x,6), (z,?),(i,3),(i,8),(t,?),(t,5),(y,2),(y,7)\}$ OK $RD_{\bullet}(5) = \{(x,1),(x,6),(z,?),(i,3),(i,8),(t,5),(y,2),(y,7)\}$ OK $RD_{\circ}(6) = \{(x,1),(x,6),(z,?),(i,3),(i,8),(t,5),(y,2),(y,7)\}$ OK $RD_{\bullet}(6) = \{(x,6),(z,?),(i,3),(i,8),(t,5),(y,2),(y,7)\}$ OK $RD_{\circ}(7) = \{(i,3),(z,?),(i,8),(t,5),(y,2),(y,7),(x,6)\}$ OK $RD_{\bullet}(7) = \{(i,3),(i,8),(t,5),(y,7),(x,6)\}$ $RD_{\circ}(8) = \{(i,3),(i,8),(t,5),(y,7),(x,6)\}$ $RD_{\bullet}(8) = \{(t,5),(x,6),(y,7),(i,8)\}$ $RD_{\circ}(9) = \{(x,1),(x,6), (z,?),(i,3),(i,8),(t,?),(t,5),(y,2),(y,7)\}$ OK $RD_{\bullet}(9) = \{(x,1),(x,6), (z,?),(i,3),(i,8),(t,?),(t,5),(y,9)\}$ OK ### Etap 14: $RD_{\circ}(1) = \{(x,?), (y,?), (z,?), (i,?), (t,?)\}$ OK $RD_{\bullet}(1) = \{(x,1), (y,?), (z,?), (i,?), (t,?)\}$ OK $RD_{\circ}(2) = \{(x,1), (y,?), (z,?), (i,?), (t,?)\}$ OK $RD_{\bullet}(2) = \{(x,1), (y,2), (z,?), (i,?), (t,?)\}$ OK $RD_{\circ}(3) = \{(x,1), (y,2), (z,?), (i,?), (t,?)\}$ OK $RD_{\bullet}(3) = \{(x,1), (y,2), (z,?), (i,3), (t,?)\}$ OK $RD_{\circ}(4) = \{(x,1),(x,6),(z,?),(i,3),(i,8),(t,?),(t,5),(y,2),(y,7)\}$ OK $RD_{\bullet}(4) = \{(x,1),(x,6),(z,?),(i,3),(i,8),(t,?),(t,5),(y,2),(y,7)\}$ OK $RD_{\circ}(5) = \{(x,1),(x,6), (z,?),(i,3),(i,8),(t,?),(t,5),(y,2),(y,7)\}$ OK $RD_{\bullet}(5) = \{(x,1),(x,6),(z,?),(i,3),(i,8),(t,5),(y,2),(y,7)\}$ OK $RD_{\circ}(6) = \{(x,1),(x,6),(z,?),(i,3),(i,8),(t,5),(y,2),(y,7)\}$ OK $RD_{\bullet}(6) = \{(x,6),(z,?),(i,3),(i,8),(t,5),(y,2),(y,7)\}$ OK $RD_{\circ}(7) = \{(i,3),(z,?),(i,8),(t,5),(y,2),(y,7),(x,6)\}$ OK $RD_{\bullet}(7) = \{(i,3),(z,?),(i,8),(t,5),(y,7),(x,6)\}$ OK $RD_{\circ}(8) = \{(i,3),(i,8),(t,5),(y,7),(x,6)\}$ $RD_{\bullet}(8) = \{(t,5),(x,6),(y,7),(i,8)\}$ $RD_{\circ}(9) = \{(x,1),(x,6), (z,?),(i,3),(i,8),(t,?),(t,5),(y,2),(y,7)\}$ OK $RD_{\bullet}(9) = \{(x,1),(x,6), (z,?),(i,3),(i,8),(t,?),(t,5),(y,9)\}$ OK ### Etap 15: $RD_{\circ}(1) = \{(x,?), (y,?), (z,?), (i,?), (t,?)\}$ OK $RD_{\bullet}(1) = \{(x,1), (y,?), (z,?), (i,?), (t,?)\}$ OK $RD_{\circ}(2) = \{(x,1), (y,?), (z,?), (i,?), (t,?)\}$ OK $RD_{\bullet}(2) = \{(x,1), (y,2), (z,?), (i,?), (t,?)\}$ OK $RD_{\circ}(3) = \{(x,1), (y,2), (z,?), (i,?), (t,?)\}$ OK $RD_{\bullet}(3) = \{(x,1), (y,2), (z,?), (i,3), (t,?)\}$ OK $RD_{\circ}(4) = \{(x,1),(x,6),(z,?),(i,3),(i,8),(t,?),(t,5),(y,2),(y,7)\}$ OK $RD_{\bullet}(4) = \{(x,1),(x,6),(z,?),(i,3),(i,8),(t,?),(t,5),(y,2),(y,7)\}$ OK $RD_{\circ}(5) = \{(x,1),(x,6), (z,?),(i,3),(i,8),(t,?),(t,5),(y,2),(y,7)\}$ OK $RD_{\bullet}(5) = \{(x,1),(x,6),(z,?),(i,3),(i,8),(t,5),(y,2),(y,7)\}$ OK $RD_{\circ}(6) = \{(x,1),(x,6),(z,?),(i,3),(i,8),(t,5),(y,2),(y,7)\}$ OK $RD_{\bullet}(6) = \{(x,6),(z,?),(i,3),(i,8),(t,5),(y,2),(y,7)\}$ OK $RD_{\circ}(7) = \{(i,3),(z,?),(i,8),(t,5),(y,2),(y,7),(x,6)\}$ OK $RD_{\bullet}(7) = \{(i,3),(z,?),(i,8),(t,5),(y,7),(x,6)\}$ OK $RD_{\circ}(8) = \{(i,3),(z,?),(i,8),(t,5),(y,7),(x,6)\}$ OK $RD_{\bullet}(8) = \{(t,5),(x,6),(y,7),(i,8)\}$ $RD_{\circ}(9) = \{(x,1),(x,6), (z,?),(i,3),(i,8),(t,?),(t,5),(y,2),(y,7)\}$ OK $RD_{\bullet}(9) = \{(x,1),(x,6), (z,?),(i,3),(i,8),(t,?),(t,5),(y,9)\}$ OK ### Etap 16: $RD_{\circ}(1) = \{(x,?), (y,?), (z,?), (i,?), (t,?)\}$ OK $RD_{\bullet}(1) = \{(x,1), (y,?), (z,?), (i,?), (t,?)\}$ OK $RD_{\circ}(2) = \{(x,1), (y,?), (z,?), (i,?), (t,?)\}$ OK $RD_{\bullet}(2) = \{(x,1), (y,2), (z,?), (i,?), (t,?)\}$ OK $RD_{\circ}(3) = \{(x,1), (y,2), (z,?), (i,?), (t,?)\}$ OK $RD_{\bullet}(3) = \{(x,1), (y,2), (z,?), (i,3), (t,?)\}$ OK $RD_{\circ}(4) = \{(x,1),(x,6),(z,?),(i,3),(i,8),(t,?),(t,5),(y,2),(y,7)\}$ OK $RD_{\bullet}(4) = \{(x,1),(x,6),(z,?),(i,3),(i,8),(t,?),(t,5),(y,2),(y,7)\}$ OK $RD_{\circ}(5) = \{(x,1),(x,6), (z,?),(i,3),(i,8),(t,?),(t,5),(y,2),(y,7)\}$ OK $RD_{\bullet}(5) = \{(x,1),(x,6),(z,?),(i,3),(i,8),(t,5),(y,2),(y,7)\}$ OK $RD_{\circ}(6) = \{(x,1),(x,6),(z,?),(i,3),(i,8),(t,5),(y,2),(y,7)\}$ OK $RD_{\bullet}(6) = \{(x,6),(z,?),(i,3),(i,8),(t,5),(y,2),(y,7)\}$ OK $RD_{\circ}(7) = \{(i,3),(z,?),(i,8),(t,5),(y,2),(y,7),(x,6)\}$ OK $RD_{\bullet}(7) = \{(i,3),(z,?),(i,8),(t,5),(y,7),(x,6)\}$ OK $RD_{\circ}(8) = \{(i,3),(z,?),(i,8),(t,5),(y,7),(x,6)\}$ OK $RD_{\bullet}(8) = \{(t,5),(z,?),(x,6),(y,7),(i,8)\}$ OK $RD_{\circ}(9) = \{(x,1),(x,6), (z,?),(i,3),(i,8),(t,?),(t,5),(y,2),(y,7)\}$ OK $RD_{\bullet}(9) = \{(x,1),(x,6), (z,?),(i,3),(i,8),(t,?),(t,5),(y,9)\}$ OK ### Etap 17 (nic się nie zmieniło): KONIEC $RD_{\circ}(1) = \{(x,?), (y,?), (z,?), (i,?), (t,?)\}$ OK $RD_{\bullet}(1) = \{(x,1), (y,?), (z,?), (i,?), (t,?)\}$ OK $RD_{\circ}(2) = \{(x,1), (y,?), (z,?), (i,?), (t,?)\}$ OK $RD_{\bullet}(2) = \{(x,1), (y,2), (z,?), (i,?), (t,?)\}$ OK $RD_{\circ}(3) = \{(x,1), (y,2), (z,?), (i,?), (t,?)\}$ OK $RD_{\bullet}(3) = \{(x,1), (y,2), (z,?), (i,3), (t,?)\}$ OK $RD_{\circ}(4) = \{(x,1),(x,6),(z,?),(i,3),(i,8),(t,?),(t,5),(y,2),(y,7)\}$ OK $RD_{\bullet}(4) = \{(x,1),(x,6),(z,?),(i,3),(i,8),(t,?),(t,5),(y,2),(y,7)\}$ OK $RD_{\circ}(5) = \{(x,1),(x,6), (z,?),(i,3),(i,8),(t,?),(t,5),(y,2),(y,7)\}$ OK $RD_{\bullet}(5) = \{(x,1),(x,6),(z,?),(i,3),(i,8),(t,5),(y,2),(y,7)\}$ OK $RD_{\circ}(6) = \{(x,1),(x,6),(z,?),(i,3),(i,8),(t,5),(y,2),(y,7)\}$ OK $RD_{\bullet}(6) = \{(x,6),(z,?),(i,3),(i,8),(t,5),(y,2),(y,7)\}$ OK $RD_{\circ}(7) = \{(i,3),(z,?),(i,8),(t,5),(y,2),(y,7),(x,6)\}$ OK $RD_{\bullet}(7) = \{(i,3),(z,?),(i,8),(t,5),(y,7),(x,6)\}$ OK $RD_{\circ}(8) = \{(i,3),(z,?),(i,8),(t,5),(y,7),(x,6)\}$ OK $RD_{\bullet}(8) = \{(t,5),(z,?),(x,6),(y,7),(i,8)\}$ OK $RD_{\circ}(9) = \{(x,1),(x,6), (z,?),(i,3),(i,8),(t,?),(t,5),(y,2),(y,7)\}$ OK $RD_{\bullet}(9) = \{(x,1),(x,6), (z,?),(i,3),(i,8),(t,?),(t,5),(y,9)\}$ OK ## Zadanie 4 1) Zaznaczyć w równaniach z zadania 1. kill - w miejscach \ {...}, gen w miejscach $\cup$ ![](https://i.imgur.com/1gUe4vW.png) $kill_{RD}([x:=0]^{1}) = \{(x,?),(x,1),(x,6)\}$ $kill_{RD}([y:=1]^{2}) = \{(y,?),(y,2),(y,7),(y,9)\}$ $kill_{RD}([i:=1]^{3}) = \{(i,?),(i,3),(i,8)\}$ $kill_{RD}([i<z]^{4}) = \emptyset$ $kill_{RD}([t:=x+y]^{5}) = \{(t,?)\}$ $kill_{RD}([x:=y]^{6}) = \{(x,?),(x,1),(x,6)\}$ $kill_{RD}([y:=t]^{7}) = \{(y,?),(y,2),(y,7),(y,9)\}$ $kill_{RD}([i:=i+1]^{8}) = \{(i,?),(i,3),(i,8)\}$ $kill_{RD}([y:=x]^{9}) = \{(y,?),(y,2),(y,7),(y,9)\}$ $gen_{RD}([x:=0]^{1}) = \{(x,1)\}$ $gen_{RD}([y:=1]^{2}) = \{(y,2)\}$ $gen_{RD}([i:=1]^{3}) = \{(i,3)\}$ $gen_{RD}([i<z]^{4}) = \emptyset$ $gen_{RD}([t:=x+y]^{5}) = \{(t,5)\}$ $gen_{RD}([x:=y]^{6}) = \{(x,6)\}$ $gen_{RD}([y:=t]^{7}) = \{(y,7)\}$ $gen_{RD}([i:=i+1]^{8}) = \{(i,8)\}$ $gen_{RD}([y:=x]^{9}) = \{(y,9)\}$ 2) Analogicznie jak przy wykonaniu przypisania do zmiennej x: $kill_{RD}([read(x)]^{l}) = \{(x,?)\} \cup \{(x, l') \,|\, B' jest \, przypisaniem\, do \, x\}$ $gen_{RD}([read(x)]^{l}) = \{(x,l)\}$ 3) Algorytm wyliczający zbiory RD(l). ![](https://i.imgur.com/TmvjhSC.png) 1. Ustawiam $RD_{exit}$ dla każdego wierzchołka (bloczka z instrukcją) na zbiór pusty. 2. Dodaję wszystkie wierzchołki do zbioru $Changed$ (zbiór wierzchołków dla których zbiory RD mogły ulec zmianie). 3. Dopóki $!Changed.empty()$: a) wybieram wierzchołek $x$ ze zbioru $Changed$ i usuwam go z $Changed$ b) Ustawiam $RD_{entry}(x)$ na zbiór pusty c) Przechodzę po wszystkich "przodkach" $x$ (wierzchołkach posiadających krawędź wychodzącą kończącą się w $x$) i uaktualniam $RD_{entry}(x)$ licząc sumę zbiorów. d) Zapisuję pomocniczo starą wartość $RD_{exit}(x)$, aby móc porównać ją z nową. e) Obliczam nową wartość $RD_{entry}(x)$ przy użyciu funkcji $kill$ i $gen$. f) Jeżeli nowa wartość $RD_{entry}(x)$ różni się od starej: aa) Dodaję wszystkie "dzieci" $x$ do zbioru $Changed$ ## Zadanie 5 $[𝑥 : = 1]^1$ 𝑖𝑓 $[𝑥 > 0]^2$𝑡ℎ𝑒𝑛 $\qquad[𝑦 := 1]^3$ 𝑒𝑙𝑠𝑒 $\qquad[𝑦 := −1]^4$ 𝑒𝑛𝑑 $[𝑧 : = 𝑦]^5$ $RD_{\bullet}(1) = RD_{\circ}(1) \setminus \{(x, l) | l \in Lab\} \cup \{(x, 1)\}$ $RD_{\bullet}(2) = RD_{\circ}(2)$ $RD_{\bullet}(3) = RD_{\circ}(3) \setminus \{(y, l) | l \in Lab\} \cup \{(y, 3)\}$ $RD_{\bullet}(4) = RD_{\circ}(4) \setminus \{(y, l) | l \in Lab\} \cup \{(y, 4)\}$ $RD_{\bullet}(5) = RD_{\circ}(5) \setminus \{(z, l) | l \in Lab\} \cup \{(z, 5)\}$ $RD_{\circ}(1) = \{(x,?), (y,?), (z,?)\}$ $RD_{\circ}(2) = RD_{\bullet}(1)$ $RD_{\circ}(3) = RD_{\bullet}(2)$ $RD_{\circ}(4) = RD_{\bullet}(2)$ $RD_{\circ}(5) = RD_{\bullet}(3) \cup RD_{\bullet}(4)$ --- |Równania|początkowy stan|| |-|-|-| $RD_{\circ}(1) = \{(x,?), (y,?), (z,?)\}$ | $\{(x,?), (y,?), (z,?)\}$ | $\{(x,?), (y,?), (z,?)\}$ $RD_{\bullet}(1) = RD_{\circ}(1) \setminus \{(x, l) \| l \in Lab\} \cup \{(x, 1)\}$ | $\emptyset$ | $\{(x,1), (y,?), (z,?)\}$ $RD_{\circ}(2) = RD_{\bullet}(1)$ | $\emptyset$ | $\{(x,1), (y,?), (z,?)\}$ $RD_{\bullet}(2) = RD_{\circ}(2)$ | $\emptyset$ | $\{(x,1), (y,?), (z,?)\}$ $RD_{\circ}(3) = RD_{\bullet}(2)$ | $\emptyset$ | $\{(x,1), (y,?), (z,?)\}$ $RD_{\bullet}(3) = RD_{\circ}(3) \setminus \{(y, l) \| l \in Lab\} \cup \{(y, 3)\}$ | $\emptyset$ | $\{(x,1), (y,3), (z,?)\}$ $RD_{\circ}(4) = RD_{\bullet}(2)$ | $\emptyset$ | $\{(x,1), (y,?), (z,?)\}$ $RD_{\bullet}(4) = RD_{\circ}(4) \setminus \{(y, l) \| l \in Lab\} \cup \{(y, 4)\}$ | $\emptyset$ | $\{(x,1), (y,4), (z,?)\}$ $RD_{\bullet}(5) = RD_{\circ}(5) \setminus \{(z, l) \| l \in Lab\} \cup \{(z, 5)\}$ | $\emptyset$ | $\{(x,1), (y,3), (y,4), (z,?)\}$ $RD_{\circ}(5) = RD_{\bullet}(3) \cup RD_{\bullet}(4)$ | $\emptyset$ | $\{(x,1), (y,3), (y,4), (z,?)\}$ $RD_{\circ}(1) = \{(x,?), (y,?), (z,?)\}$ $RD_{\bullet}(1) = \{(x,1), (y,?), (z,?)\}$ $RD_{\circ}(2) = \{(x,1), (y,?), (z,?)\}$ $RD_{\bullet}(2) = \{(x,1), (y,?), (z,?)\}$ $RD_{\circ}(3) = \{(x,1), (y,?), (z,?)\}$ $RD_{\bullet}(3) = \{(x,1), (y,3), (z,?)\}$ $RD_{\circ}(4) = \{(x,1), (y,?), (z,?)\}$ $RD_{\bullet}(4) = \{(x,1), (y,4), (z,?)\}$ $RD_{\circ}(5) = \{(x,1), (y,3), (y,4), (z,?)\}$ $RD_{\bullet}(5) = \{(x,1), (y,3), (y,4), (z,5)\}$ Użycie żadnego równania nie zmieni wartośći RD, więc algorytm stałopunktowy kończy działanie W faktycznym wykonaniu warunek $[x>0]^2$ będzie zawsze prawdziwy, bo x będzie równy 1, więc instrukcja $[y := 1]^3$ wykona się zawsze $[y := 1]^4$ nigdy się nie wykona Więc na wejściu do instrukcji 5 y będzie miał na pewno ostatnie zmiany pochodzące z instrukcji 3 ## Zadanie 6 Zmienna jest żywa przy wyjściu z danej etykiety jeżeli znajduje się jakaś ścieżka z wyjścia tej etykiety do użycia tej zmiennej (które nie jest zredefiniowaniem jej) Celem analizy zmiennych żywych jest ustalenie dla każdego punktu programu, które zmienne mogą być żywe. (Analizujemy w których momentach wykonania programu wartość danej zmiennej ma znaczenie dla dalszego przebiegu programu.) --- ![](https://i.imgur.com/GhsnhSp.png) --- Zasady gen/kill: ![](https://i.imgur.com/C9CIqIQ.png) --- rozpatrywany program $[x := 0]^1$ $[y := 1]^2$ $[i := 1]^3$ $𝑤ℎ𝑖𝑙𝑒 [i < z]^4$ 𝑑𝑜 $\qquad[t := x + y]^5$ $\qquad[x := y]^6$ $\qquad[y := t]^7$ $\qquad[i := i + 1]^8$ 𝑜𝑑 $[y := x]^9$ --- Rozpisany układ 18 równań: $LV_{entry}(1) = LV_{exit}(1) \setminus \{x\}$ $LV_{entry}(2) = LV_{exit}(2) \setminus \{y\}$ $LV_{entry}(3) = LV_{exit}(3) \setminus \{i\}$ $LV_{entry}(4) = LV_{exit}(4)\cup \{i,z\}$ $LV_{entry}(5) = (LV_{exit}(5) \setminus \{t\})\cup \{x,y\}$ $LV_{entry}(6) = (LV_{exit}(6) \setminus \{x\})\cup \{y\}$ $LV_{entry}(7) = (LV_{exit}(7) \setminus \{y\})\cup \{t\}$ $LV_{entry}(8) = (LV_{exit}(8) \setminus \{i\})\cup \{i\}$ $LV_{entry}(9) = LV_{exit}(9) \cup \{x\}$ tu trzeba to co w OUT9, ale również x $LV_{exit}(1) = LV_{entry}(2)$ $LV_{exit}(2) = LV_{entry}(3)$ $LV_{exit}(3) = LV_{entry}(4)$ $LV_{exit}(4) = LV_{entry}(5) \cup LV_{entry}(9)$ $LV_{exit}(5) = LV_{entry}(6)$ $LV_{exit}(6) = LV_{entry}(7)$ $LV_{exit}(7) = LV_{entry}(8)$ $LV_{exit}(8) = LV_{entry}(4)$ $LV_{exit}(9) = \emptyset$ tu już nie potrzeba nic (od tego zaczynamy w rozwiązywaniu układu) --- Rozwiązanie metodą stałopunktową | | iteracja 1. alg | iteracja 2. alg | |---|---|---| $LV_{exit}(9)$ | $\emptyset$ $LV_{entry}(9)$ | $\{x\}$ $LV_{exit}(8)$ | $\emptyset$ | $\{\textbf{i},\textbf{x},\textbf{y},\textbf{z}\}$ $LV_{entry}(8)$ | $\{x,i\}$ | $\{i,x,\textbf{y},\textbf{z}\}$ $LV_{exit}(7)$ | $\{x,i\}$ | $\{i,x,\textbf{y},\textbf{z}\}$ $LV_{entry}(7)$ | $\{x,i,t\}$ | $\{i,x,t,\textbf{z}\}$ $LV_{exit}(6)$ | $\{x,i,t\}$ | $\{i,t,x,\textbf{z}\}$ $LV_{entry}(6)$ | $\{i,t,y\}$ | $\{i,y,y,\textbf{z}\}$ $LV_{exit}(5)$ | $\{i,t,y\}$ | $\{i,t,y,\textbf{z}\}$ $LV_{entry}(5)$ | $\{i,x,y\}$ | $\{i,x,y,\textbf{z}\}$ $LV_{exit}(4)$ | $\{i,x,y\}$ | $\{i,x,y,z\}$ $LV_{entry}(4)$ | $\{i,x,y,z\}$ | $\{i,x,y,z\}$ $LV_{exit}(3)$ | $\{i,x,y,z\}$ $LV_{entry}(3)$ | $\{x,y,z\}$ $LV_{exit}(2)$ | $\{x,y,z\}$ $LV_{entry}(2)$ | $\{x,z\}$ $LV_{exit}(1)$ | $\{x,z\}$ $LV_{entry}(1)$ | $\{z\}$ ## Zadanie 7 ![](https://i.imgur.com/rd9B4vb.png) "Use-Definition Chain" to struktura danych która dla każdego wystąpienia zmiennej w programie trzyma informację o miejscach, w których mogła być zdefiniowana bez jej późniejszej zmiany aż do rozważanego wystąpienia. Jest używana do statycznej analizy kodu - służyć może między innymi do pewnych optymalizacji w procesie kompilacji. Opisywane analizy przedstawię w postaci: $UD\texttt{-}chain(VAR,LABEL) = \{L1, L2, ...\}$ Przypomnijmy kod z zadania 1: ![](https://i.imgur.com/vAmdj8i.png) Nie rozpisujemy analiz typu $UD\texttt{-}chain(VAR,LAB)$ gdy wartość zmiennej $VAR$ nie jest istotna dla instrukcji oznaczonej $LAB$ (ich wartość można symbolicznie zapisać przez $\emptyset$) Analizując więc instrukcje które korzystają z wartości jakichś zmiennych (tj. inne niż ... := b dla b będącą stałą): $UD\texttt{-}chain(i,4) = ...$ $UD\texttt{-}chain(z,4) = ...$ $UD\texttt{-}chain(x,5) = ...$ $UD\texttt{-}chain(y,5) = ...$ $UD\texttt{-}chain(y,6) = ...$ $UD\texttt{-}chain(t,7) = ...$ $UD\texttt{-}chain(i,8) = ...$ $UD\texttt{-}chain(x,9) = ...$ Przypomnijmy wartości $RD_{\circ}(4)$, $RD_{\circ}(5)$, $RD_{\circ}(6)$, $RD_{\circ}(7)$, $RD_{\circ}(8)$, $RD_{\circ}(9)$ (bo tylko dla instrukcji 4, 5, 6, 7, 8, 9 mamy wyrażenia takiego typu jak opisałem wyżej): $RD_{\circ}(4) = \{(x,1), (x,6), (y,2), (y,7), (z,?), (i,3), (i,8), (t,?) (t,5)\}$ $RD_{\circ}(5) = \{(x,1), (x,6), (y,2), (y,7), (z,?), (i,3), (i,8), (t,?) (t,5)\}$ $RD_{\circ}(6) = \{(x,1), (x,6), (y,2), (y,7), (z,?), (i,3), (i,8), (t,5)\}$ $RD_{\circ}(7) = \{(x,6), (y,2), (y,7), (z,?), (i,3), (i,8), (t,5)\}$ $RD_{\circ}(8) = \{(x,6), (y,7), (z,?), (i,3), (i,8), (t,5)\}$ $RD_{\circ}(9) = \{(x,1), (x,6), (y,2), (y,7), (z,?), (i,3), (i,8), (t,?), (t,5)\}$ Mamy zatem: $UD\texttt{-}chain(i,4) = \{3, 8\}$ $UD\texttt{-}chain(z,4) = \{?\}$ $UD\texttt{-}chain(x,5) = \{1, 6\}$ $UD\texttt{-}chain(y,5) = \{2, 7\}$ $UD\texttt{-}chain(y,6) = \{2, 7\}$ $UD\texttt{-}chain(t,7) = \{5\}$ $UD\texttt{-}chain(i,8) = \{3, 8\}$ $UD\texttt{-}chain(x,9) = \{1, 6\}$ ![](https://i.imgur.com/cV5zrVS.png) ## Zadanie 8 ![](https://i.imgur.com/fIwTC5t.png) ![](https://i.imgur.com/gqeP7DL.png) ![](https://i.imgur.com/GosPThs.png) ### Równania $AE_{entry}(1) = \emptyset$ $AE_{entry}(2) = AE_{exit}(1)$ $AE_{entry}(3) = AE_{exit}(2)$ $AE_{entry}(4) = AE_{exit}(3) \cap AE_{exit}(8)$- możemy być pewni tylko tego co jest wspólne $AE_{entry}(5) = AE_{exit}(4)$ $AE_{entry}(6) = AE_{exit}(5)$ $AE_{entry}(7) = AE_{exit}(6)$ $AE_{entry}(8) = AE_{exit}(7)$ $AE_{entry}(9) = AE_{exit}(4)$ $AE_{exit}(1) = AE_{entry}(1)$ $AE_{exit}(2) = AE_{entry}(2)$ $AE_{exit}(3) = AE_{entry}(3)$ $AE_{exit}(4) = AE_{entry}(4)$ $AE_{exit}(5) = AE_{entry}(5) \cup \{x+y\}$ $AE_{exit}(6) = AE_{entry}(6) \setminus \{x+y\}$ $AE_{exit}(7) = AE_{entry}(7) \setminus \{x+y\}$ $AE_{exit}(8) = AE_{entry}(8) \setminus \{i+1\}$ $AE_{exit}(9) = AE_{entry}(9)$ ### Algorytm stałopunktowy Stan początkowy - wszystkie zbiory są puste $AE_{entry}(1) = \emptyset$ $AE_{entry}(2) = AE_{exit}(1) = \emptyset$ $AE_{entry}(3) = AE_{exit}(2) = \emptyset$ $AE_{entry}(4) = AE_{exit}(3) \cap AE_{exit}(8) = \emptyset$ $AE_{entry}(5) = AE_{exit}(4) = \emptyset$ $AE_{entry}(6) = AE_{exit}(5) = \{x+y\}$ $AE_{entry}(7) = AE_{exit}(6) = \emptyset$ $AE_{entry}(8) = AE_{exit}(7) = \emptyset$ $AE_{entry}(9) = AE_{exit}(4) = \emptyset$ $AE_{exit}(1) = AE_{entry}(1) = \emptyset$ $AE_{exit}(2) = AE_{entry}(2) = \emptyset$ $AE_{exit}(3) = AE_{entry}(3) = \emptyset$ $AE_{exit}(4) = AE_{entry}(4) = \emptyset$ $AE_{exit}(5) = AE_{entry}(5) \cup \{x+y\} = \{x+y\}$ $AE_{exit}(6) = AE_{entry}(6) \backslash \{x+y\} = \emptyset$ $AE_{exit}(7) = AE_{entry}(7) \backslash \{x+y\} = \emptyset$ $AE_{exit}(8) = AE_{entry}(8) \backslash \{i+1\} = \emptyset$ $AE_{exit}(9) = AE_{entry}(9) \backslash \{x+y\} = \emptyset$