From: Marjolein Zwerver Date: Fri, 13 Jun 2014 15:24:15 +0000 (+0200) Subject: laatste kleine aanpassingen X-Git-Url: https://git.martlubbers.net/?a=commitdiff_plain;p=sec1415.git laatste kleine aanpassingen --- diff --git a/an_arit_expr.tex b/an_arit_expr.tex index 2a5cac2..9904886 100644 --- a/an_arit_expr.tex +++ b/an_arit_expr.tex @@ -58,5 +58,5 @@ $\begin{array}{ll} {\color{red}\#} & & & & & & & & {\color{lyellow}\#} & {\color{yellow}\#}\\ & & & & & & & & & {\color{yellow}\#} \end{tabular}\\ -\textbf{Piet'} $push 3, push 2, sub, push 1, push 1, sub, gre, not, push 3, - push 4, gre, not, add, push 1, gre$\\ +\textbf{Piet'} $push \: 3, push \: 2, sub, push \: 1, push \: 1, sub, gre, not, push \: 3, + push \: 4, gre, not, add, push \: 1, gre$\\ diff --git a/an_variabelen.tex b/an_variabelen.tex index 4eab6a2..b33eb46 100644 --- a/an_variabelen.tex +++ b/an_variabelen.tex @@ -9,7 +9,7 @@ diepte van de variabele (beginnende bij $1$) en $m$ als het aantal variabelen op de stack bij aanvang van het opvragen. \subsubsection{Unair opvragen van een natuurlijk getal} -Bij het opvragen van een vaste waarde gaat doormiddel van $Get(n)$ functie. +Het opvragen van een vaste waarde gaat doormiddel van de $get(n)$ functie. Deze functie haalt de waarde op van variabele \textit{n}. \subsubsection{Unair} diff --git a/semantic_functions.prp b/semantic_functions.prp index 01d6e53..24d5b52 100644 --- a/semantic_functions.prp +++ b/semantic_functions.prp @@ -11,10 +11,10 @@ MainModule DclOpen: False Icl WindowPosition - X: 590 - Y: 128 - SizeX: 798 - SizeY: 640 + X: -8 + Y: -30 + SizeX: 927 + SizeY: 931 IclOpen: True OtherModules Module diff --git a/semantics.tex b/semantics.tex index 0eccea6..9d704c1 100644 --- a/semantics.tex +++ b/semantics.tex @@ -23,8 +23,8 @@ de tweede transitie duidt op een terminerende transitie.\\ Om de semantiekregels te kunnen beschrijven maken we gebruik van hulpfuncties. Hieronder staat het type van de functies en een korte beschrijving. De implementatie is gedaan in de vorm van een functioneel programma in de taal \textit{Clean}. -De implementatie van deze functies staat in de appendix. -De functies worden op de volgende manier aangegeven: \textit{naam functie} (\textit{naam in appendix}, r. \textit{regelnummer in appendix})\\ +De implementatie van de functies staat in de appendix. +Elke functie wordt op de volgende manier aangegeven: \textit{naam functie} (\textit{naam in appendix}, r. \textit{regelnummer in appendix})\\ delete functie (d, r. 5):\\ Om het bovenste element van een stack weg te kunnen gooien gebruiken we de volgende @@ -101,7 +101,7 @@ wordt een 0 bovenop de stack gestopt.\\ roll functie (roll, r. 54):\\ Om de elementen op de stack te verschuiven gebruiken we de volgende functie:\\ $$\mathcal{ROLL} : Stack \rightarrow Stack$$\\ -Deze functie haalt de bovenste twee elementen van de stack 'rolt' de rest van de stack tot een diepte die gelijk is aan de waarde van het tweede bovenste element. Een rol tot diepte \textit{n} verschuift de elementen 1 tot en met \textit{n} allemaal 1 plaats naar boven. Vervolgens wordt het eerste element van de stack op plaats \textit{n} neergelegd. Het aantal keren dat de stack gerold wordt is gelijk aan de waarde van het bovenste element. Als deze waarde negatief is word de stack in tegenovergestelde richting gerold. Dit houdt in dat bij elke rol het element op plaats \textit{n} bovenop de stack word gelegt, en de rest van de elementen (dat boven het element op plaats \textit{n} lagen) 1 plaats naar beneden wordt verschoven.\\ +Deze functie haalt de bovenste twee elementen van de stack 'rolt' de rest van de stack tot een diepte die gelijk is aan de waarde van het tweede bovenste element. Een rol tot diepte \textit{n} verschuift de elementen 1 tot en met \textit{n} allemaal 1 plaats naar boven. Vervolgens wordt het eerste element van de stack op plaats \textit{n} neergelegd. Het aantal keren dat de stack gerold word is gelijk aan de waarde van het bovenste element. Als deze waarde negatief is word de stack in tegenovergestelde richting gerold. Dit houdt in dat bij elke rol het element op plaats \textit{n} bovenop de stack word gelegd, en de rest van de elementen (dat boven het element op plaats \textit{n} lagen) 1 plaats naar beneden wordt verschoven.\\ out number (output stack) functie (outnum, r. 70):\\ Deze functie past de output stack aan als er een integer naartoe geschreven wordt:\\ @@ -116,7 +116,7 @@ Deze functie haalt het bovenste element van de input stack en stopt dit element Met behulp van deze gedefinieerde functies kunnen we nu de semantiekregels opstellen. De meeste regels spreken redelijk voor zich: als een commando wordt uitgevoerd, zorgt dit voor een verandering in de bijbehorende stack. Deze verandering komt tot stand door het toepassen van de bijbehorende hulpfunctie op deze stack. -Voor de afleidings regels voor de compositie halen we, in tegenstelling tot de normale gang van zaken bij sos, steeds een commando van het einde van de lijst af. +Voor de semantiekregels voor de compositie halen we, in tegenstelling tot de normale gang van zaken bij sos, steeds een commando van het einde van de lijst af. Hiervoor is gekozen zodat de afleidingsrijen makkelijk te controleren zijn door bij de implementatie in \textit{Clean} de functies een voor een op een stack toe te passen.\\ \begin{alignat*}{2}