-\subsection{Aritmatische expressies}
-Het uitrekenen van een arithmatische expressie in \textit{Piet} moet in
+\subsection{Aritmetische expressies}
+Het uitrekenen van een arithmetische expressie in \textit{Piet} moet in
verschillende stappen gebeuren. Volgens de regels van de wiskunde worden er
telkens binaire operaties uitgevoerd tot het vereenvoudigd is tot een enkele
-numerieke waarde. Het opvragen van variabelen uit het geheugen word in een
-volgende subsectie besproken en we gaan er nu van uit dat dat een triviale
+numerieke waarde. Het opvragen van variabelen uit het geheugen wordt in een
+volgende paragraaf besproken en we gaan er nu van uit dat dat een triviale
operatie is die een of twee variabelen boven aan zetten op een gekozen
volgorde.\\
-Na het opvragen van variabele $n$ wordt de variabele boven aan gezet en krijgen
-de andere variabelen automatisch andere nummers. De variabelen met een positie
-strict kleiner dan $n$ krijgen een positie verhoging van $1$ en de variabelen
-met een positie strict groter dan $n$ krijgen een positie verlaging van $1$.\\
-Bijvoorbeeld bij de expressie $1+1$ is de eerste stap twee keen een $1$ op de
-stack duwen en vervolgens de binare $+$ operator toe te passen en dat gaat als
-volgt:\\
+Na het opvragen van variabele $n$ wordt de variabele boven op de stack gezet en
+krijgen de andere variabelen automatisch andere nummers. De variabelen met een
+positie strikt kleiner dan $n$ krijgen een positieverhoging van $1$ en de
+variabelen met een positie strikt groter dan $n$ krijgen een positieverlaging
+van $1$.\\ Bijvoorbeeld bij de expressie $1+1$ is de eerste stap twee keer een
+$1$ op de stack duwen en vervolgens de binare $+$ operator toepassen en dat
+gaat als volgt:\\
\textbf{While} $x := 1 + 1$\\
\textbf{Piet}
\begin{tabular}{cccc}
{\color{dgreen}\#}\\
{\color{red}\#} & {\color{dred}\#}\\
\end{tabular}\\
-\textbf{Piet'} $push 2, push 3, mul, get y, add$\\
+\textbf{Piet'} $push\ 2, push\ 3, mul, get\ y, add$\\
\subsection{Booleaanse expressies}
-Het evalueren van booleaanse expressies gaat hetzelfde als aritmatische
-expressies, het enige verschil is dat er binnen de booleanse operatoren
-operatoren bestaan die niet voorkomen in \textit{Piet} en deze moeten dus
-herschreven worden. De operatoren die herschreven worden zijn: $=, \leq,
-\wedge\\
-\begin{array}{ll}
+Het evalueren van booleaanse expressies gaat hetzelfde als aritmetische
+expressies, het enige verschil is dat er binnen de booleanse operatoren van
+\textit{While} operatoren bestaan die niet voorkomen in \textit{Piet} en deze
+moeten dus herschreven worden. De operatoren die herschreven worden zijn: $=,
+\leq, \wedge$\\
+De herschrijving van onbestaande operatoren in \textit{Piet} gaat als volgt:\\
+$\begin{array}{ll}
a \wedge b & a*b\\
a = b & not(a-b)>0\\
a \leq b & \neg(a>b)
\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.\\
+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 laatste
+blokje van dit commando volgen in twee richtingen twee verschillende paden,
+waarbij \'e\'en 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 wordt na een wit blokje gevolgd 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 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 door middel van bochten op hetzelfde pad
+uitkomen.\\
\textbf{While} if $b$ then $S_1$ else $S_2$ \\
& & & & & \color{dorange}$\ast$ & \color{lgray}\_ & \color{lgray}\_ & \color{lgray}\_ & \color{lgray}\_ & \color{lgray}\_ \\
-\end{tabular}
\ No newline at end of file
+\end{tabular}
\subsection{While statement}
-De \textit{while} constructie in \textit{While} van de vorm while $b$ do $S$
-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$ en het andere pad met het einde van de loop.
-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. Het pad na rechts
-word na een aantal witte blokjes gevolgt door de representatie van $S$. Hierna volgt
-weer een aantal witte blokjes waardoor het pad uiteindelijk uitkomt bij het begin van
-boolean $b$.\\
+De \textit{while} constructie in \textit{While} van de vorm while $b$ do $S$
+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 laatste blokje van
+dit commando volgen in twee richtingen twee verschillende paden, waarbij
+\'e\'en pad correspondeert met $S$ en het andere pad met het einde van de loop.
+In dit voorbeeld representeert het eerste blok een willekeurige boolean $b$,
+deze wordt na een wit blokje gevolgd 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 de richting van de interpreter 1 slag met de klok mee en gaat
+dus naar rechts. Het pad naar rechts wordt na een aantal witte blokjes gevolgd
+door de representatie van $S$. Hierna volgt weer een aantal witte blokjes
+waardoor het pad uiteindelijk uitkomt bij het begin van boolean $b$.\\
\textbf{While} while $b$ do $S$ \\
\color{lgray}\_ & \color{lgray}\_ & \color{lgray}\_ & \color{dorange}$\ast$ & \color{lgray}$\ast$ & \color{orange}$\ast$ & \color{lgray}\_ & \color{lgray}\_ \\
& & & \color{lgray}$\ast$ & \color{lgray}$\ast$ & \color{lgray}$\ast$ \\
& & & \color{lgray}$\ast$ & \color{lgray}$\ast$ & \color{lgray}$\ast$ \\
-\end{tabular}
\ No newline at end of file
+\end{tabular}
Bochten uitleggen(analysis.tex)
Semantics(marjolein)
+Uitleggen waarom piet' verschijnt in expressies(an_arit_expr.tex)