semantics aangetikt maar niet gedaan, analysis mee begonnen, skip klaar en compositie ook
[sec1415.git] / an_if_statement.tex
1 \subsection{If statement}
2 De \textit{if} constructie in \textit{While} van de vorm if $b$ then $S_1$ else $S_2$
3 kan worden gerepresenteerd in \textit{Piet} door de representatie van $b$ na een
4 wit blokje te volgen door een pointer die op basis van het bovenste element op de
5 stack de richting van de interpreter aanpast. Op het laaste blokje van dit commando
6 volgen in 2 richtingen twee verschillende paden, waarbij 1 pad correspondeert met
7 $S_1$ en het andere pad met $S_2$. Wel moeten beide paden uiteindelijk op hetzelfde
8 punt uitkomen. \\
9 In dit voorbeeld representeert het eerste blok een willekeurige boolean $b$, deze
10 word na een wit blokje gevolgt door het pointer commando. Hierna splitsen de paden
11 zich op: als de boolean 0 oplevert draait de richting van de interpreter 0 slagen met
12 de klok mee en gaat dus rechtdoor, als de boolean 1 oplevert draait van de richting
13 van de interpreter 1 slag met de klok mee en gaat dus naar rechts. In deze twee
14 richtingen volgen vervolgens de representaties voor $S_1$ en $S_2$, die
15 uiteindelijk doormiddel van witte blokjes weer op hetzelfde pad uitkomen.\\
16
17
18 \textbf{While} if $b$ then $S_1$ else $S_2$ \\
19
20 \textbf{Piet}
21 \begin{tabular}{ccccccccccc}
22 \color{orange}$\ast$ & \color{lgray}$\ast$ & \color{lgray}$\ast$\\
23 \color{lgray}$\ast$ & \color{lgray}$\ast$ & \color{lgray}$\ast$\\
24 \color{lgray}$\ast$ & \color{lgray}$\ast$ & \color{dorange}$\ast$ &
25 \color{lgray}\_ & \color{red}\# & \color{dcyan}\# & \color{lgray}\_ &
26 \color{orange}$\ast$ & \color{lgray}$\ast$ & \color{dorange}$\ast$\\
27 & & & & & \color{lgray}\_ & & & & \color{lgray}\_\\
28 & & & & & \color{orange}$\ast$ & & & & \color{lgray}\_\\
29 & & & & & \color{lgray}$\ast$ & & & & \color{lgray}\_\\
30 & & & & & \color{dorange}$\ast$ & \color{lgray}\_ & \color{lgray}\_ & \color{lgray}\_ & \color{lgray}\_ & \color{lgray}\_ \\
31
32
33 \end{tabular}