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
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.\\
18 \textbf{While
} if $b$ then $S_1$ else $S_2$ \\
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
}\_ \\