laatste kleine aanpassingen
[sec1415.git] / an_while_statement.tex
1 \subsection{While statement}
2 De \textit{while} constructie in \textit{While} van de vorm while $b$ do $S$
3 kan worden gerepresenteerd in \textit{Piet} door de representatie van $b$ na
4 een wit blokje te volgen door een pointer die op basis van het bovenste element
5 op de stack de richting van de interpreter aanpast. Op het laatste blokje van
6 dit commando volgen in twee richtingen twee verschillende paden, waarbij
7 \'e\'en pad correspondeert met $S$ en het andere pad met het einde van de loop.
8 In dit voorbeeld representeert het eerste blok een willekeurige boolean $b$,
9 deze wordt na een wit blokje gevolgd door het pointer commando. Hierna splitsen
10 de paden zich op: als de boolean 0 oplevert draait de richting van de
11 interpreter 0 slagen met de klok mee en gaat dus rechtdoor, als de boolean 1
12 oplevert draait de richting van de interpreter 1 slag met de klok mee en gaat
13 dus naar rechts. Het pad naar rechts wordt na een aantal witte blokjes gevolgd
14 door de representatie van $S$. Hierna volgt weer een aantal witte blokjes
15 waardoor het pad uiteindelijk uitkomt bij het begin van boolean $b$.\\
16
17 \textbf{While} while $b$ do $S$ \\
18
19 \textbf{Piet}
20 \begin{tabular}{ccccccccccccc}
21 \color{lgray}\_ & \color{lgray}\_ & \color{orange}$\ast$ & \color{lgray}$\ast$ & \color{lgray}$\ast$\\
22 \color{lgray}\_ & & \color{lgray}$\ast$ & \color{lgray}$\ast$ & \color{lgray}$\ast$\\
23 \color{lgray}\_ & & \color{lgray}$\ast$ & \color{lgray}$\ast$ & \color{dorange}$\ast$ &
24 \color{lgray}\_ & \color{red}\# & \color{dcyan}\# & \color{lgray}\_\\
25 \color{lgray}\_ & & & & & & & \color{lgray}\_\\
26 \color{lgray}\_ & & & & & & & \color{lgray}\_\\
27 \color{lgray}\_ & \color{lgray}\_ & \color{lgray}\_ & \color{dorange}$\ast$ & \color{lgray}$\ast$ & \color{orange}$\ast$ & \color{lgray}\_ & \color{lgray}\_ \\
28 & & & \color{lgray}$\ast$ & \color{lgray}$\ast$ & \color{lgray}$\ast$ \\
29 & & & \color{lgray}$\ast$ & \color{lgray}$\ast$ & \color{lgray}$\ast$ \\
30 \end{tabular}