summaryrefslogtreecommitdiff
path: root/rulesget.tex
diff options
context:
space:
mode:
Diffstat (limited to 'rulesget.tex')
-rw-r--r--rulesget.tex16
1 files changed, 12 insertions, 4 deletions
diff --git a/rulesget.tex b/rulesget.tex
index b61b764..f8810a7 100644
--- a/rulesget.tex
+++ b/rulesget.tex
@@ -1,19 +1,27 @@
% vim: set spelllang=nl:
\subsection{\texttt{Get}}
-$\StmGet$ neemt het bovenste element van de stack en gebruikt dit als
-variabelenaam om in de variable store te zoeken.
+\begin{quote}
+ g - Pops a variable name from the stack, and pushes the value of the
+ variable.
+\end{quote}
+
+De regel voor dit statement spreekt voor zich. In het geval dat $\stk$ leeg is,
+is $\pop\stk$ niet gedefinieerd en kunnen we de regel dus niet toepassen. Omdat
+$\StmGet$ geen IO gebruikt kunnen we $\ip$, $\ip'$ en $\op$ direct doorgeven.
$$
\begin{prooftree}
\trans
- {\pgm}{\ip}{([\str~\var:\stk], \str)}
+ {\pgm}{\ip}{(\push{\str~\var}{\stk}, \str)}
{\ip'}{\op}{\st}
\justifies
\trans
- {\StmGet:\pgm}{\ip}{([\var:\stk],\str)}
+ {\StmGet:\pgm}{\ip}{(\stk,\str)}
{\ip'}{\op}{\st}
\using{\rgetns}
+ \qquad
+ \text{met $(\var,\stk') = \pop{\stk}$.}
\end{prooftree}
$$