laatste kleine aanpassingen
[sec1415.git] / versie-1 / an_assignment.tex
1 \subsection{Assignment}
2 Het toewijzen van waarden aan variabelen kost in \textit{Piet} een stuk meer
3 werk omdat \textit{Piet} alle variabelen in een stack op slaat. Variabelen in
4 piet kunnen we nummers toewijzen. De diepte van de variabele in de stack
5 bepaald het nummer en als we aan de hand daarvan. Als er een assignment gedaan
6 wordt krijgt de variabele nummer $1$ en alle nummers van de bestaande
7 variabelen stijgen met $1$. Als er dus een waarde $n$ wordt toegewezen aan een
8 naam dan moet er een blok gemaakt worden van grootte $n$ en dan een push gedaan
9 worden op de volgende manier:\\
10 \textbf{While} $x := 1$\\
11 \textbf{Piet}
12 \begin{tabular}{cc}
13 {\color{red}\#} & {\color{dred}\#}\\
14 \end{tabular}\\
15 \textbf{Piet'} $push 1$\\
16 \textbf{While} $x := 5$\\
17 \textbf{Piet}
18 \begin{tabular}{cc}
19 {\color{red}\#} & {\color{dred}\#}\\
20 {\color{red}\#} & {\color{red}\#}\\
21 {\color{red}\#} & {\color{red}\#}
22 \end{tabular}\\
23 \textbf{Piet'} $push 5$\\
24 Bij arithmatische expressies vindt automatisch een toewijzing plaatst doordat
25 de uitkomst van de expressie boven op de stack staat en dus aan een waarde
26 toegewezen word.\\
27 Merk op dat de waarde $0$ niet gepushed kan worden dus om de waarde $0$ op de
28 stack te krijgen moet men $n-n$ uitvoeren.
29 %Notes: op een gegeven moment kan het sneller door een waarde te pushen en dan
30 %met twee te vermenigvuldigen een aantal keren.