summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--rules.tex10
-rw-r--r--rulesget.tex8
-rw-r--r--smurf.sty7
3 files changed, 18 insertions, 7 deletions
diff --git a/rules.tex b/rules.tex
index f841805..fd145e4 100644
--- a/rules.tex
+++ b/rules.tex
@@ -2,6 +2,16 @@
\section{Regels} %todo working title
\label{sec:rules}
+We zullen nu ieder syntaxelement nader specificeren. Ook zullen regels voor de
+natuurlijke semantiek van Smurf worden geïntroduceerd.
+
+De documentatie \cite{safalra} beschrijft niet wat er gebeurt wanneer er niet
+genoeg argumenten op de stack staan om een bepaalde instructie uit te voeren.
+We kiezen ervoor om het in zulk soort gevallen onmogelijk te maken een
+afleidingsboom te maken (in tegenstelling tot bijvoorbeeld een errorstatus aan
+de rechterkant van transities toe te voegen), omdat dit het redeneren over
+Smurfprogramma's makkelijker zal maken.
+
%\input{rulespush}
%\input{ruleshead}
%\input{rulestail}
diff --git a/rulesget.tex b/rulesget.tex
index eb16561..b61b764 100644
--- a/rulesget.tex
+++ b/rulesget.tex
@@ -7,12 +7,12 @@ variabelenaam om in de variable store te zoeken.
$$
\begin{prooftree}
\trans
- {\pgm}{\i}{([\str~\var:\stk], \str)}
- {\i'}{\o}{\st}
+ {\pgm}{\ip}{([\str~\var:\stk], \str)}
+ {\ip'}{\op}{\st}
\justifies
\trans
- {\StmGet:\pgm}{\i}{([\var:\stk],\str)}
- {\i'}{\o}{\st}
+ {\StmGet:\pgm}{\ip}{([\var:\stk],\str)}
+ {\ip'}{\op}{\st}
\using{\rgetns}
\end{prooftree}
$$
diff --git a/smurf.sty b/smurf.sty
index c80e99d..6bc6fde 100644
--- a/smurf.sty
+++ b/smurf.sty
@@ -41,13 +41,14 @@
\def\trans#1#2#3#4#5#6{\left\langle#1,#2,#3\right\rangle\to\left(#4,#5,#6\right)}
% Rules
-\def\rgetns{[\mbox{get}_{\mbox{ns}}]}
+\def\rule#1#2{[\mbox{#1}_{\mbox{\footnotesize{#2}}}]}
+\def\rgetns{\rule{get}{ns}}
% Common names
\def\stk{\mathit{stk}}
\def\str{\mathit{str}}
-\def\i{\mathit{i}}
-\def\o{\mathit{o}}
+\def\ip{\mathit{i}}
+\def\op{\mathit{o}}
\def\pgm{\mathit{pgm}}
\def\stm{\mathit{stm}}
\def\st{\mathit{st}}