voorlopige variabelen
authorMart Lubbers <mart@martlubbers.net>
Thu, 8 May 2014 20:53:56 +0000 (22:53 +0200)
committerMart Lubbers <mart@martlubbers.net>
Thu, 8 May 2014 20:53:56 +0000 (22:53 +0200)
an_variabelen.tex

index c3115d1..9e46b6b 100644 (file)
@@ -1 +1,16 @@
 \subsection{Variabelen}
+Variabelen in \textit{While} worden op een totaal andere manier opgeslagen in
+\textit{Piet}. Waar variabelen in while een naam hebben, hebben variabelen in
+\textit{Piet} een nummer en kunnen ze door het aanroepen van een functie
+bovenaan gezet worden. De functie kan precies $1$ of precies $2$ variabelen
+boven aan de stack zetten. Hetzelfde kan voor de variabelen posities $a$ en $b$
+waarbij $b>a$. De piet' code om de variabele boven aan te krijgen is dan als
+volgt: $push b-1, push b-a, roll, push b, push b, push b*2, sub, roll$.\\
+Allereerst wordt $b-1$ op de stack gedrukt, dit bepaalt de diepte van de eerste
+$roll$ en zorgt ervoor dat $a$ tegen $b$ aan komt te liggen. $b-a$ wordt dat op
+de stack gepushed, dit is het verschil tussen $a$ en $b$ en bepaalt het aantal
+rolls er gedaan wordt op de stack, dit zijn er precies genoeg om $a$ bij $b$ te
+plaatsen. Vervolgens moeten ze nog naar boven en dat kan door $-b+1$ stappen te
+rollen met een diepte van $b$. de eerste $push b$ bepaalt de diepje en
+vervolgens wordt met $push b, push b*2-1, sub$ $b-1$ op de stack gepushed om te
+rollen en $a$ en $b$ bovenaan te plaatsen.