summaryrefslogtreecommitdiff
path: root/rulesput.tex
diff options
context:
space:
mode:
Diffstat (limited to 'rulesput.tex')
-rw-r--r--rulesput.tex23
1 files changed, 22 insertions, 1 deletions
diff --git a/rulesput.tex b/rulesput.tex
index ce3c624..1691a5b 100644
--- a/rulesput.tex
+++ b/rulesput.tex
@@ -1,9 +1,30 @@
% vim: set spelllang=nl:
\subsection{\texttt{Put}}
+\begin{quote}
+ p - Pops a variable name from the stack, pops a value from the stack, and
+ assigns that value to the variable name.
+\end{quote}
+
+We halen twee strings van de stack en gebruiken $\putop$ om een nieuwe variable
+store te krijgen. Hiermee wordt de rest van het programma uitgevoerd. Als er
+minder dan twee elementen op de stack staan kan deze regel niet worden
+toegepast, aangezien $\popop$ een partiƫle functie is.
+
$$
\begin{prooftree}
- hallo
+ \trans
+ {\pgm}{\ip}{(\stk'', \put\var\val\str)}
+ {\ip'}{\op}{\st}
+ \justifies
+ \trans
+ {\StmPut:\pgm}{\ip}{(\stk,\str)}
+ {\ip'}{\op}{\st}
+ \using{\rputns}
+ \qquad
+ \text{met\enspace
+ \parbox{36mm}{$(\var,\stk') = \pop{\stk}$,\\$(\val,\stk'') = \pop{\stk'}$.}
+ }
\end{prooftree}
$$