X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=versie-1%2Fan_if_statement.tex;fp=versie-1%2Fan_if_statement.tex;h=a1eaaaa8d81771ae49c399e99b07170bbe1b5ff4;hb=4272348e58a32a4433614c55ea9ef650fe7b4f60;hp=0000000000000000000000000000000000000000;hpb=3c6cc0ecaf6173ed11e218bb96fa4ab52bc22233;p=sec1415.git diff --git a/versie-1/an_if_statement.tex b/versie-1/an_if_statement.tex new file mode 100644 index 0000000..a1eaaaa --- /dev/null +++ b/versie-1/an_if_statement.tex @@ -0,0 +1,33 @@ +\subsection{If statement} +De \textit{if} constructie in \textit{While} van de vorm if $b$ then $S_1$ else $S_2$ +kan worden gerepresenteerd in \textit{Piet} door de representatie van $b$ na een +wit blokje te volgen door een pointer die op basis van het bovenste element op de +stack de richting van de interpreter aanpast. Op het laaste blokje van dit commando +volgen in 2 richtingen twee verschillende paden, waarbij 1 pad correspondeert met +$S_1$ en het andere pad met $S_2$. Wel moeten beide paden uiteindelijk op hetzelfde +punt uitkomen. \\ +In dit voorbeeld representeert het eerste blok een willekeurige boolean $b$, deze +word na een wit blokje gevolgt door het pointer commando. Hierna splitsen de paden +zich op: als de boolean 0 oplevert draait de richting van de interpreter 0 slagen met +de klok mee en gaat dus rechtdoor, als de boolean 1 oplevert draait van de richting +van de interpreter 1 slag met de klok mee en gaat dus naar rechts. In deze twee +richtingen volgen vervolgens de representaties voor $S_1$ en $S_2$, die +uiteindelijk doormiddel van witte blokjes weer op hetzelfde pad uitkomen.\\ + + +\textbf{While} if $b$ then $S_1$ else $S_2$ \\ + +\textbf{Piet} +\begin{tabular}{ccccccccccc} +\color{orange}$\ast$ & \color{lgray}$\ast$ & \color{lgray}$\ast$\\ +\color{lgray}$\ast$ & \color{lgray}$\ast$ & \color{lgray}$\ast$\\ +\color{lgray}$\ast$ & \color{lgray}$\ast$ & \color{dorange}$\ast$ & +\color{lgray}\_ & \color{red}\# & \color{dcyan}\# & \color{lgray}\_ & +\color{orange}$\ast$ & \color{lgray}$\ast$ & \color{dorange}$\ast$\\ + & & & & & \color{lgray}\_ & & & & \color{lgray}\_\\ + & & & & & \color{orange}$\ast$ & & & & \color{lgray}\_\\ + & & & & & \color{lgray}$\ast$ & & & & \color{lgray}\_\\ + & & & & & \color{dorange}$\ast$ & \color{lgray}\_ & \color{lgray}\_ & \color{lgray}\_ & \color{lgray}\_ & \color{lgray}\_ \\ + + +\end{tabular} \ No newline at end of file