kleine aanpassing semantiek en introductie
authorMarjolein Zwerver <marjolein_zwerver@hotmail.com>
Fri, 13 Jun 2014 12:05:14 +0000 (14:05 +0200)
committerMarjolein Zwerver <marjolein_zwerver@hotmail.com>
Fri, 13 Jun 2014 12:05:14 +0000 (14:05 +0200)
introduction.tex
semantics.tex

index d8c66b6..eede017 100644 (file)
@@ -39,7 +39,7 @@ vergelijken is met een agent die over de pixels loopt. De agent houdt een
 aantal dingen bij terwijl hij aan het lopen is over de pixels namelijk:
 \textit{codelchooser(CC), direction pointer(DP), vorig vlak(VK)}.  De VK waarde
 is de waarde van het vorige codel bij het bewegen naar een nieuwe codel. De
-waarde van een codel is het oppervlakte van de codels met de zelfde kleur die
+waarde van een codel is de oppervlakte van de codels met de zelfde kleur die
 verlaten is.  Het bepalen van de volgende codel wordt bepaald door een
 combinatie van de CC en de DP, deze relatie staat beschreven in 
 Tabel~\ref{tab:in1}.
@@ -49,10 +49,10 @@ Tabel~\ref{tab:in1}.
     \centering
     \begin{tabular}{|c|c|c|}
         \hline
-        DP & CC & Codel chosen\\
+        DP & CC & Codel gekozen\\
         \hline
         rechts & links & meest bovenste\\
-        rechts & rechts & minst bovenste\\
+        rechts & rechts & meest onderste\\
         omlaag & links & meest rechtse\\
         omlaag & rechts & meest linkse\\
         links & links & meest onderste\\
@@ -84,7 +84,7 @@ is termineert het programma.
         \end{itemize}
 \end{table}
 
-De instructies die de overgangen uitdrukken staan beschreven in de 
+De instructies die de overgangen uitdrukken staan beschreven in 
 Tabel~\ref{tab:in2}.
 \begin{table}[H]
     \caption{Commando's}
index 3f04670..0eccea6 100644 (file)
@@ -15,15 +15,16 @@ gerepresenteerd als: $s=[e_0, e_1, \dots, e_n]$ waarbij $e_i\in\mathbb{Z}$
 Het transitiesysteem zal twee verschillende transities kennen, namelijk:\\ 
 $\langle S, s_i, s_o, s\rangle\Rightarrow\langle S', s_i', s_o', s'\rangle$ en\\ 
 $\langle S, s_i, s_o, s\rangle\Rightarrow\langle s_i', s_o', s'\rangle$\\ 
-Waarbij de laatste transitie duidt op een transitie waar een volgende transitie
-aanwezig is en genomen kan worden. De tweede duidt op een transitie waarbij er
-geen volgede beschikbaar is en het programma dus termineerd.
-op een niet terminerende transitie.\\ 
+Waarbij bij de eerste transitie de executie van S niet na een stap klaar is en waarbij
+de tweede transitie duidt op een 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. De functies worden op de volgende manier aangegeven: \textit{naam functie} (\textit{naam in appendix}, r. \textit{regelnummer})\\
+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})\\
 
 delete functie (d, r. 5):\\
 Om het bovenste element van een stack weg te kunnen gooien gebruiken we de volgende 
@@ -98,7 +99,7 @@ de stack als de tweede bovenste waarde groter is dan de bovenste waarde. Anders
 wordt een 0 bovenop de stack gestopt.\\
 
 roll functie (roll, r. 54):\\
-Om de stack elementen te verschuiven gebruiken we de volgende functie:\\
+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.\\
 
@@ -112,7 +113,11 @@ 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.\\
 
-Met behulp van deze gedefinieerde functies kunnen we nu de volgende semantiekregels opstellen:\\
+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. 
+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}
 {[comp^1_{sos}]}\qquad &