1 \subsection{Aritmatische expressies
}
2 Het uitrekenen van een arithmatische expressie in
\textit{Piet
} moet in
3 verschillende stappen gebeuren. Volgens de regels van de wiskunde worden er
4 telkens binaire operaties uitgevoerd tot het vereenvoudigd is tot een enkele
5 numerieke waarde. Het opvragen van variabelen uit het geheugen word in een
6 volgende subsectie besproken en we gaan er nu van uit dat dat een triviale
7 operatie is die een of twee variabelen boven aan zetten op een gekozen
9 Na het opvragen van variabele $n$ wordt de variabele boven aan gezet en krijgen
10 de andere variabelen automatisch andere nummers. De variabelen met een positie
11 strict kleiner dan $n$ krijgen een positie verhoging van $
1$ en de variabelen
12 met een positie strict groter dan $n$ krijgen een positie verlaging van $
1$.\\
13 Bijvoorbeeld bij de expressie $
1+
1$ is de eerste stap twee keen een $
1$ op de
14 stack duwen en vervolgens de binare $+$ operator toe te passen en dat gaat als
16 \textbf{While
} $x :=
1 +
1$\\
24 \textbf{Piet'
} $push
1, push
1, add$\\
26 \textbf{While
} $x := y +
3 *
2$\\
28 \begin{tabular
}{cccccccc
}
29 {\color{red
}\#
} &
{\color{dred
}\#
} &
{\color{dred
}\#
} &
{\color{lred
}\#
}
30 {\color{dyellow
}\#
} & ...variable retrieval... &
{\color{dyellow
}\#
} &
32 {\color{red
}\#
} &
{\color{dred
}\#
}\\
34 \textbf{Piet'
} $push
2, push
3, mul, get y, add$\\
36 \subsection{Booleaanse expressies
}
37 Het evalueren van booleaanse expressies gaat hetzelfde als aritmatische
38 expressies, het enige verschil is dat er binnen de booleanse operatoren
39 operatoren bestaan die niet voorkomen in
\textit{Piet
} en deze moeten dus
40 herschreven worden. De operatoren die herschreven worden zijn: $=,
\leq,
47 \textbf{While
} $
3=
2\wedge 3\leq 4$\\
49 \begin{tabular
}{ccccccccccccccc
}
50 {\color{red
}\#
} &
{\color{dred
}\#
} &
{\color{lred
}\#
} &
{\color{yellow
}\#
}
51 &
{\color{dyellow
}\#
} &
{\color{lyellow
}\#
} &
{\color{dgreen
}\#
} &
52 {\color{dmagenta
}\#
} &
{\color{lyellow
}\#
} &
{\color{yellow
}\#
} &
53 {\color{blue
}\#
} &
{\color{dred
}\#
} &
{\color{magenta
}\#
} &
54 {\color{dmagenta
}\#
} &
{\color{green
}\#
}\\
55 {\color{red
}\#
} &
{\color{dred
}\#
} & & & & & & &
{\color{lyellow
}\#
} &
57 {\color{red
}\#
} & & & & & & & &
{\color{lyellow
}\#
} &
{\color{yellow
}\#
}\\
58 & & & & & & & & &
{\color{yellow
}\#
}
60 \textbf{Piet'
} $push
3, push
2, sub, push
1, push
1, sub, gre, not, push
3,
61 push
4, gre, not, add, push
1, gre$\\