eerste aanpassingen semantiek en todo
authorMarjolein Zwerver <marjolein.zwerver@student.ru.nl>
Thu, 12 Jun 2014 17:41:19 +0000 (19:41 +0200)
committerMarjolein Zwerver <marjolein.zwerver@student.ru.nl>
Thu, 12 Jun 2014 17:41:19 +0000 (19:41 +0200)
semantic_functions.prp
semantics.tex
todo.txt

index 131e5bc..601c728 100644 (file)
@@ -9,6 +9,12 @@ MainModule
                        SizeX:  800
                        SizeY:  640
        DclOpen:        False
+       Icl
+               WindowPosition
+                       X:      10
+                       Y:      10
+                       SizeX:  800
+                       SizeY:  640
        IclOpen:        True
 OtherModules
        Module
index f7fb7fa..3f04670 100644 (file)
@@ -23,26 +23,26 @@ op een niet terminerende transitie.\\
 \subsection{Semantiekbeschrijving}
 
 Om de semantiekregels te kunnen beschrijven maken we gebruik van hulpfuncties. Hieronder staat het type van de functies en een korte beschrijving.
-De implementatie van deze functies staat in de appendix bij het aangegeven regelnummer.\\
+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})\\
 
 delete functie (d, r. 5):\\
 Om het bovenste element van een stack weg te kunnen gooien gebruiken we de volgende 
 functie:\\
 $$\mathcal{D} : Stack \rightarrow Stack$$
-Deze functie haalt het bovenste element van de stack en gooit deze weg.\\
+Deze functie haalt het bovenste element van de stack en gooit dit weg.\\
 
 extend functie (e, r. 9):\\
 Om een stack uit te kunnen breiden met een element gebruiken we de volgende 
 functie:\\
 $$\mathcal{E} : \mathbb{Z}\rightarrow (Stack\rightarrow Stack)$$\\
-Deze functie neemt een stack en een integer en voegt de integer toe bovenop de 
+Deze functie neemt een integer en een stack en voegt de integer toe bovenop de 
 stack.\\
 
 add functie (add, r. 13):\\
 Om de bovenste twee elementen van een stack op te tellen gebruiken we de volgende 
 functie:\\
 $$\mathcal{ADD} : Stack \rightarrow Stack$$
-Deze functie haalt de bovenste twee waarden van de stack, telt ze bij elkaar op, en stopt 
+Deze functie haalt de bovenste twee waarden van de stack, telt ze bij elkaar op, en legt
 het resultaat bovenop de stack.\\
 
 subtract functie (sub, r. 18)\\
@@ -50,7 +50,7 @@ Om de bovenste twee elementen van een stack van elkaar af te trekken gebruiken w
 de volgende functie:\\
 $$\mathcal{SUB} : Stack \rightarrow Stack$$
 Deze functie haalt de bovenste twee elementen van de stack, trekt de bovenste 
-waarde van de tweede bovenste waarde af, en stopt het resultaat bovenop de stack.\\
+waarde van de tweede bovenste waarde af, en legt het resultaat bovenop de stack.\\
 
 multiply functie (mul, r. 23):\\
 Om de bovenste twee elementen van een stack te vermenigvuldigen gebruiken we de 
@@ -83,34 +83,32 @@ Deze functie haalt de bovenste waarde van de stack en stopt een kopie
 en de bovenste waarde bovenop de stack.\\
 
 not functie (notc, r. 42):\\
-Om de not van de bovenste waarde te berekenen gebruiken we de 
+Om te kijken of de bovenste waarde gelijk is aan 0 gebruiken we de 
 volgende functie:\\
 $$\mathcal{NOT} : Stack \rightarrow Stack$$\\
 Deze functie neemt het bovenste element van de stack en stopt 0 bovenaan de 
 stack als deze waarde niet gelijk is aan 0 en 1 als deze waarde gelijk is aan 0.\\
 
 greater functie (gre, r. 47):\\
-Om kijken of de tweede bovenste waarde groter is dan de bovenste waarde 
+Om te kijken of de tweede bovenste waarde groter is dan de bovenste waarde 
 gebruiken we de volgende functie:\\
 $$\mathcal{GRE} : Stack \rightarrow Stack$$\\
 Deze functie haalt de bovenste twee waarden van de stack en stopt een 1 bovenop 
 de stack als de tweede bovenste waarde groter is dan de bovenste waarde. Anders 
-word een 0 bovenop de stack gestopt.\\
+wordt een 0 bovenop de stack gestopt.\\
 
 roll functie (roll, r. 54):\\
-Om de stack te rollen gebruiken we de volgende functie:\\
+Om de stack elementen te verschuiven gebruiken we de volgende functie:\\
 $$\mathcal{ROLL} : Stack \rightarrow Stack$$\\
-Deze functie haalt de bovenste twee elementen van de stack en stopt 1 bovenop 
-de stack als het tweede bovenste element een hogere waarde heeft als dat van het 
-bovenste element. Anders word 1 bovenop de stack gestopt.\\ 
+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.\\
 
 out number (output stack) functie (outnum, r. 70):\\
-Deze functie past de output stack aan als er een integer naartoe geschreven word:\\
+Deze functie past de output stack aan als er een integer naartoe geschreven wordt:\\
 $$\mathcal{OUTN_{SO}} : Stack \rightarrow Stack$$\\
 Deze functie haalt het bovenste element van de stack en stopt dit element bovenop de output stack.\\
 
 in number (stack) functie (innum, r. 75):\\
-Deze functie past de stack aan als er een integer naartoe geschreven word:\\
+Deze functie past de stack aan als er een integer naartoe geschreven wordt:\\
 $$\mathcal{INN_S} : Stack \rightarrow Stack$$\\
 Deze functie haalt het bovenste element van de input stack en stopt dit element bovenop de output stack.\\
 
@@ -118,11 +116,11 @@ Met behulp van deze gedefinieerde functies kunnen we nu de volgende semantiekreg
 
 \begin{alignat*}{2}
 {[comp^1_{sos}]}\qquad &
-\frac{\langle S_2, s\rangle \Rightarrow \langle S'_2, s'\rangle}
-{\langle S_1 ;S_2, s\rangle \Rightarrow \langle S_1;S'_2, s'\rangle}\\
+\frac{\langle S_2, s\rangle \Rightarrow \langle S'_2, s_i', s_o', s'\rangle}
+{\langle S_1 ;S_2, s\rangle \Rightarrow \langle S_1;S'_2, s_i', s_o', s'\rangle}\\
 {[comp^2_{sos}]}\qquad &
-\frac{\langle S_2, s\rangle \Rightarrow \langle s'\rangle}
-{\langle S_1 ;S_2, s\rangle \Rightarrow \langle S_1, s'\rangle}\\
+\frac{\langle S_2, s\rangle \Rightarrow \langle s_i', s_o', s'\rangle}
+{\langle S_1 ;S_2, s\rangle \Rightarrow \langle S_1, s_i', s_o', s'\rangle}\\
 {[pop_{sos}]}\qquad &
 \langle pop, s_i, s_o, s\rangle \Rightarrow
 \langle s_i, s_o,\mathcal{D}(s)\rangle\\
index 66df979..645a906 100644 (file)
--- a/todo.txt
+++ b/todo.txt
@@ -1,4 +1,10 @@
 Bochten uitleggen(analysis.tex)
-Semantics(marjolein)
 Uitleggen waarom piet' verschijnt in expressies(an_arit_expr.tex)
 Get functie uitleggen in unair
+
+
+marjolein:
+analyse voor 2! programma
+inchar en outchar toevoegen
+Semantics(marjolein)
+eventuele toelichten voor afleidingsregels
\ No newline at end of file