vars, en arethm
[sec1415.git] / an_assignment.tex
index b13c5f4..b177760 100644 (file)
@@ -1 +1,30 @@
 \subsection{Assignment}
+Het toewijzen van waarden aan variabelen kost in \textit{Piet} een stuk meer
+werk omdat \textit{Piet} alle variabelen in een stack op slaat. Variabelen in
+piet kunnen we nummers toewijzen. De diepte van de variabele in de stack
+bepaald het nummer en als we aan de hand daarvan. Als er een assignment gedaan
+wordt krijgt de variabele nummer $1$ en alle nummers van de bestaande
+variabelen stijgen met $1$. Als er dus een waarde $n$ wordt toegewezen aan een
+naam dan moet er een blok gemaakt worden van grootte $n$ en dan een push gedaan
+worden op de volgende manier:\\
+\textbf{While} $x := 1$\\
+\textbf{Piet}
+\begin{tabular}{cc}
+       {\color{red}\#} & {\color{dred}\#}\\
+\end{tabular}\\
+\textbf{Piet'} $push 1$\\
+\textbf{While} $x := 5$\\
+\textbf{Piet}
+\begin{tabular}{cc}
+       {\color{red}\#} & {\color{dred}\#}\\
+       {\color{red}\#} & {\color{red}\#}\\
+       {\color{red}\#} & {\color{red}\#}
+\end{tabular}\\
+\textbf{Piet'} $push 5$\\
+Bij arithmatische expressies vindt automatisch een toewijzing plaatst doordat
+de uitkomst van de expressie boven op de stack staat en dus aan een waarde
+toegewezen word.\\
+Merk op dat de waarde $0$ niet gepushed kan worden dus om de waarde $0$ op de
+stack te krijgen moet men $n-n$ uitvoeren.
+%Notes: op een gegeven moment kan het sneller door een waarde te pushen en dan
+%met twee te vermenigvuldigen een aantal keren.