1 \subsection{Variabelen
}
2 \subsubsection{Verschil met
\textit{While
}}
3 Omdat
\textit{Piet
} geen variabelen opslag kent moeten we de variabelenopslag
4 van
\textit{While
} emuleren. Dit wordt gedaan door steeds een diepte toe te
5 kennen aan variabelen en bij het assignen van een variabele wordt deze in de
6 stack gestopt en onthouden welke diepte hij heeft om het zo via de onderstaande
7 algorithmen op te kunnen rakelen. Binnen de algorithmen wordt $n$ gebruikt als
8 diepte van de variabele(beginnende bij $
1$) en $m$ als het aantal variabelen op
9 de stack bij aanvang van het opvragen.
12 Als er een operator uitgevoerd wordt die slechts \'e\'en waarde vraagt van de
13 stack hoeft er slechts \'e\'en waarde boven aan de stack gezet te worden en dit
14 gaat met de volgende operaties:\\
15 push $n$, push $n-
1$, roll, dup, push $n+
1$, push $
1$, roll\\
18 \caption{Voorbeeld, $n=
3$
}
20 \begin{tabular
}{|c|c|c|c|c|c|c|c|
}
23 push $
3$ & push $
3-
1$ & roll & dup & push $
3+
1$ & push $
1$ & roll\\
25 5 &
3 &
2 &
2 &
2 &
4 &
1 &
2 \\
\hline
26 6 &
5 &
3 &
5 &
2 &
2 &
4 &
5 \\
\hline
27 2 &
6 &
5 &
6 &
5 &
2 &
2 &
6 \\
\hline
28 1 &
2 &
6 &
1 &
6 &
5 &
2 &
2 \\
\hline
29 3 &
1 &
2 &
3 &
1 &
6 &
5 &
1 \\
\hline
30 &
3 &
1 & &
3 &
1 &
6 &
3 \\
\hline
31 & &
3 & & &
3 &
1 & \\
\hline
32 & & & & & &
3 & \\
\hline
35 Dit algorithme beschrijven we als $Un(n)$ voor later gebruik.
37 \subsubsection{Binair
}
38 Als er een operator uitgevoerd wordt die twee waardes vraagt van de stack
39 worden deze boven elkaar boven op de stack gekopieert met de volgende
41 $Un(n_1), Un(n_2+
1)$\\
42 Voorbeeld, $n_1=
2, n_2=
4$\\
45 \caption{Voorbeeld, $n_1=
2, n_2=
4$
}
47 \begin{tabular
}{|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|
}
49 &
\multicolumn{7}{c|
}{$Un(
2)$
} &
\multicolumn{7}{c|
}{$Un(
4+
1)$
}\\
52 push $
2$ & push $
3$ & roll & dup & push $
3$ & push $
1$ & roll &
53 push $
5$ & push $
4$ & roll & dup & push $
6$ & push $
1$ & roll\\
55 5 &
2 &
3 &
6 &
6 &
3 &
1 &
6 &
5 &
4 &
1 &
1 &
6 &
1 &
1 \\
\hline
56 6 &
5 &
2 &
5 &
6 &
6 &
3 &
5 &
6 &
5 &
6 &
1 &
1 &
6 &
6 \\
\hline
57 2 &
6 &
5 &
2 &
5 &
6 &
6 &
6 &
5 &
6 &
5 &
6 &
1 &
1 &
5 \\
\hline
58 1 &
2 &
6 &
1 &
2 &
5 &
6 &
2 &
6 &
5 &
6 &
5 &
6 &
1 &
6 \\
\hline
59 3 &
1 &
2 &
3 &
1 &
2 &
5 &
1 &
2 &
6 &
2 &
6 &
5 &
6 &
2 \\
\hline
60 &
3 &
1 & &
3 &
1 &
2 &
3 &
1 &
2 &
3 &
2 &
6 &
5 &
1 \\
\hline
61 & &
3 & & &
3 &
1 & &
3 &
1 & &
3 &
2 &
6 &
3 \\
\hline
62 & & & & & &
3 & & &
3 & & &
3 &
2 & \\
\hline
63 & & & & & & & & & & & & &
3 & \\
\hline