diff options
-rw-r--r-- | rules.tex | 10 | ||||
-rw-r--r-- | rulesget.tex | 8 | ||||
-rw-r--r-- | smurf.sty | 7 |
3 files changed, 18 insertions, 7 deletions
@@ -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} $$ @@ -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}} |