\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.
+\subsubsection{Verschil met \textit{While}}
+Omdat \textit{Piet} geen variabelen opslag kent moeten we de variabelenopslag
+van \textit{While} emuleren. Dit wordt gedaan door steeds een diepte toe te
+kennen aan variabelen en bij het assignen van een variabele wordt deze in de
+stack gestopt en onthouden welke diepte hij heeft om het zo via de onderstaande
+algorithmen op te kunnen rakelen. Binnen de algorithmen wordt $n$ gebruikt als
+diepte van de variabele(beginnende bij $1$) en $m$ als het aantal variabelen op
+de stack bij aanvang van het opvragen.
+
+\subsubsection{Unair}
+Als er een operator uitgevoerd wordt die slechts \'e\'en waarde vraagt van de
+stack hoeft er slechts \'e\'en waarde boven aan de stack gezet te worden en dit
+gaat met de volgende operaties:\\
+push $n$, push $n-1$, roll, dup, push $n+1$, push $1$, roll\\
+\begin{table}[h]
+ \centering
+ \caption{Voorbeeld, $n=3$}
+ \scriptsize
+ \begin{tabular}{|c|c|c|c|c|c|c|c|}
+ \hline
+ init &
+ push $3$ & push $3-1$ & roll & dup & push $3+1$ & push $1$ & roll\\
+ \hline
+ 5 & 3 & 2 & 2 & 2 & 4 & 1 & 2 \\\hline
+ 6 & 5 & 3 & 5 & 2 & 2 & 4 & 5 \\\hline
+ 2 & 6 & 5 & 6 & 5 & 2 & 2 & 6 \\\hline
+ 1 & 2 & 6 & 1 & 6 & 5 & 2 & 2 \\\hline
+ 3 & 1 & 2 & 3 & 1 & 6 & 5 & 1 \\\hline
+ & 3 & 1 & & 3 & 1 & 6 & 3 \\\hline
+ & & 3 & & & 3 & 1 & \\\hline
+ & & & & & & 3 & \\\hline
+ \end{tabular}
+\end{table}\\
+Dit algorithme beschrijven we als $Un(n)$ voor later gebruik.
+
+\subsubsection{Binair}
+Als er een operator uitgevoerd wordt die twee waardes vraagt van de stack
+worden deze boven elkaar boven op de stack gekopieert met de volgende
+operaties:\\
+$Un(n_1), Un(n_2+1)$\\
+Voorbeeld, $n_1=2, n_2=4$\\
+\begin{table}[h]
+ \centering
+ \caption{Voorbeeld, $n_1=2, n_2=4$}
+ \scriptsize
+ \begin{tabular}{|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|}
+ \hline
+ & \multicolumn{7}{c|}{$Un(2)$} & \multicolumn{7}{c|}{$Un(4+1)$}\\
+ \hline
+ init &
+ push $2$ & push $3$ & roll & dup & push $3$ & push $1$ & roll &
+ push $5$ & push $4$ & roll & dup & push $6$ & push $1$ & roll\\
+ \hline
+ 5 & 2 & 3 & 6 & 6 & 3 & 1 & 6 & 5 & 4 & 1 & 1 & 6 & 1 & 1 \\\hline
+ 6 & 5 & 2 & 5 & 6 & 6 & 3 & 5 & 6 & 5 & 6 & 1 & 1 & 6 & 6 \\\hline
+ 2 & 6 & 5 & 2 & 5 & 6 & 6 & 6 & 5 & 6 & 5 & 6 & 1 & 1 & 5 \\\hline
+ 1 & 2 & 6 & 1 & 2 & 5 & 6 & 2 & 6 & 5 & 6 & 5 & 6 & 1 & 6 \\\hline
+ 3 & 1 & 2 & 3 & 1 & 2 & 5 & 1 & 2 & 6 & 2 & 6 & 5 & 6 & 2 \\\hline
+ & 3 & 1 & & 3 & 1 & 2 & 3 & 1 & 2 & 3 & 2 & 6 & 5 & 1 \\\hline
+ & & 3 & & & 3 & 1 & & 3 & 1 & & 3 & 2 & 6 & 3 \\\hline
+ & & & & & & 3 & & & 3 & & & 3 & 2 & \\\hline
+ & & & & & & & & & & & & & 3 & \\\hline
+ \end{tabular}
+\end{table}