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 From 437a9e3b60e681373bd142c90c5295694f425d2d Mon Sep 17 00:00:00 2001 From: W-M-T Date: Fri, 29 Apr 2016 15:14:30 +0200 Subject: spelling/structure --- rulesoutput.tex | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/rulesoutput.tex b/rulesoutput.tex index 3f6ab0a..739ced0 100644 --- a/rulesoutput.tex +++ b/rulesoutput.tex @@ -5,11 +5,11 @@ 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, + 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: + Dit geeft de volgende regel: $$ \prooftree @@ -26,5 +26,5 @@ $$ \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. +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. -- cgit v1.2.3 From 16c7647c8941171e74da3e6e05d6154752fca013 Mon Sep 17 00:00:00 2001 From: Evi Date: Fri, 29 Apr 2016 15:06:26 +0200 Subject: template cat quotify, first version push --- rulescat.tex | 15 +++++++++++++++ rulespush.tex | 28 ++++++++++++++++++++++++++++ rulesquotify.tex | 17 +++++++++++++++++ 3 files changed, 60 insertions(+) create mode 100644 rulescat.tex create mode 100644 rulespush.tex create mode 100644 rulesquotify.tex diff --git a/rulescat.tex b/rulescat.tex new file mode 100644 index 0000000..d05e0e5 --- /dev/null +++ b/rulescat.tex @@ -0,0 +1,15 @@ +% vim: set spelllang=nl: +\subsection{\texttt{Cat}} +\label{sec:rules:cat} + +\begin{quote} + + - concatenates the top two strings on the stack. The string pushed earlier + appears earlier in the resulting string, eg + "Zork" "mid" + + would result in the string "Zorkmid" being placed on the stack. +\end{quote} + +De twee strings die als laatste op de stack zijn gezet worden dus samen gevoegd en terug op de stack gezet. + +Dit geeft de volgende regel: + diff --git a/rulespush.tex b/rulespush.tex new file mode 100644 index 0000000..3362b50 --- /dev/null +++ b/rulespush.tex @@ -0,0 +1,28 @@ +% vim: set spelllang=nl: +\subsection{\texttt{Push}} +\label{sec:rules:push} + +\begin{quote} + "text" - Places the string on top of the stack (without the quotes). The string + may include the following escape sequences: newline, the " - character and the $\backslash$ - character +\end{quote} + +De string tussen de quotes word op de stack gezet. Eerst word er nog gecontroleerd op newlines, "-characters en $\backslash$ characters. Dit gaat doormiddel van de hulpfunctie unescape. + +Dit geeft de volgende regel: + +$$ +\begin{prooftree} + \trans + {\pgm}{\ip}{(\push(\unescape(String)\stk), \str)} + {\ip}{\op}{\st} + \justifies + \trans + {\StmPush:\pgm}{\ip}{(\stk,\str)} + {\ip}{\op}{\st} + \using{\rpushns} + \qquad +\end{prooftree} +$$ + + diff --git a/rulesquotify.tex b/rulesquotify.tex new file mode 100644 index 0000000..50acc22 --- /dev/null +++ b/rulesquotify.tex @@ -0,0 +1,17 @@ +% vim: set spelllang=nl: +\subsection{\texttt{Quotify}} +\label{sec:rules:quotify} + +\begin{quote} +q - "Quotifies" the string on top of the stack, so that it can be placed + into a Smurf program as a literal string, eg + Arthur "two-sheds" Jackson + becomes + "Arthur $\backslash$ "two-sheds $\backslash$ " Jackson" +\end{quote} + + +Er worden dus quotes om de string heen gezet. Als er in de oorspronkelijke string quotes stonden dan wordt voor iedere van deze quotes een "$\backslash$" geplaats. + +Dit geeft de volgende regel: + -- cgit v1.2.3 From 8459ceb2a9a53d900754e8ab307b7fcdb1e8908f Mon Sep 17 00:00:00 2001 From: W-M-T Date: Fri, 29 Apr 2016 15:17:13 +0200 Subject: Removed weird extra spaces --- rulesoutput.tex | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rulesoutput.tex b/rulesoutput.tex index 739ced0..7bdc741 100644 --- a/rulesoutput.tex +++ b/rulesoutput.tex @@ -5,11 +5,11 @@ 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. + 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: +Dit geeft de volgende regel: $$ \prooftree -- cgit v1.2.3 From 78b21bd3be45b8c3e7c71dd29cde5830bb208298 Mon Sep 17 00:00:00 2001 From: W-M-T Date: Fri, 29 Apr 2016 15:25:38 +0200 Subject: structure --- introexmp.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/introexmp.tex b/introexmp.tex index 8585b88..5e8d4d8 100644 --- a/introexmp.tex +++ b/introexmp.tex @@ -2,7 +2,7 @@ \subsection{Voorbeelden} \label{sec:intro:exmp} Nu we alle commando's hebben gezien bekijken we nog een paar voorbeelden die -aangeven hoe conditionele executie kan worden in Smurf. +aangeven hoe conditionele executie kan worden behaald in Smurf. % Dit is waarschijnlijk te veel anders. % -- cgit v1.2.3