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$.\\
17 \textbf{While
} while $b$ do $S$ \\
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$ \\