From 42c9484ca61ca7595c715efd109e8fe5d92b0b7f Mon Sep 17 00:00:00 2001 From: W-M-T Date: Fri, 29 Apr 2016 15:10:55 +0200 Subject: Output rule --- rules.tex | 2 +- rulesoutput.tex | 30 ++++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 rulesoutput.tex diff --git a/rules.tex b/rules.tex index 664b042..8b01508 100644 --- a/rules.tex +++ b/rules.tex @@ -21,6 +21,6 @@ Smurfprogramma's makkelijker zal maken. \input{rulesget} \input{rulesput} \input{rulesinput} -%\input{rulesoutput} +\input{rulesoutput} \input{rulesexec} diff --git a/rulesoutput.tex b/rulesoutput.tex new file mode 100644 index 0000000..3f6ab0a --- /dev/null +++ b/rulesoutput.tex @@ -0,0 +1,30 @@ +% vim: set spelllang=nl: +\subsection{\texttt{Output}} + +\begin{quote} + o - Output the string at the top of the stack +\end{quote} + + Net als bij het inputcommando gaan we op een abstracte wijze met de output om. +We houden gedurende het hele programma een stack van strings, genaamd $\Output$ bij, +waar het programma zijn output naar wegschrijft. + +Dit geeft de volgende regel: + +$$ +\prooftree + \trans + {\pgm}{\ip}{(\stk',\str)} + {\ip'}{[\op:\Nil]}{\st} + \justifies + \trans + {\StmOutput:\pgm}{\ip}{(\stk,\str)} + {\ip'}{[\op:[var:\Nil]]}{\st} + \using{\routputns} + \qquad + \text{met $(\var,\stk') = \pop{\stk}$.} +\endprooftree +$$ + +Merk op dat eenzelfde regel, waar $var$ niet achteraan maar vooraan zou komen te staan, even geldig is. Geen van beide opties is beter dan de ander, omdat we geen aannames doen over doe de $\Output$-stack wordt verwerkt. + -- cgit v1.2.3