summaryrefslogtreecommitdiff
path: root/rulesoutput.tex
blob: 7bdc741c4fab0c8eea2726b03784a7d2ad632721 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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 hoe de $\Output$-stack wordt verwerkt.