From: Marjolein Zwerver Date: Sat, 31 May 2014 17:24:52 +0000 (+0200) Subject: laatste kleine aanpassingen X-Git-Url: https://git.martlubbers.net/?a=commitdiff_plain;h=de298e39d28ad9f44e1e0e4f444321e099c9c48f;p=sec1415.git laatste kleine aanpassingen --- diff --git a/an_faculteit.tex b/an_faculteit.tex index 7db77ea..59fd921 100644 --- a/an_faculteit.tex +++ b/an_faculteit.tex @@ -118,12 +118,14 @@ $ \langle pointer; not, [\:], [\:], [1,1,1]\rangle \Rightarrow\\ \langle pointer [\:], [\:], [0,1,1]\rangle \Rightarrow\\ \langle [\:], [\:], [1,1]\rangle\\ -\ +\\ $ -Eerst worden x en y op de stack gepusht zodat de stack [y,x] = [1,1]. +Eerst worden x en y op de stack gestopt zodat de stack [y,x] = [1,1]. Deze stack is gelijk aan de stack in de termineerende configuratie: 1 = 1! dus y = x!. Als bewijs dat de wiskundige operaties op de stack goed zijn uitgevoerd staat in de appendix onder het kopje voorbeelden een stukje code. In het programma eenfaculteit worden alle wiskundige operaties die bij de commando's horen -achter elkaar uitgevoerd op de stack, waarbij het resultaat [1,1] is. +achter elkaar uitgevoerd op de stack, waarbij het resultaat [1,1] is.\\ +Bij de voorbeelden staan ook nog de programma's tweefaculteit en +vijffaculteit die respectievelijk 2! en 5! uitrekenen. \end{landscape} \ No newline at end of file diff --git a/semantics.tex b/semantics.tex index 34acedc..994aeb6 100644 --- a/semantics.tex +++ b/semantics.tex @@ -112,8 +112,6 @@ Deze functie past de stack aan als er een integer naartoe geschreven word:\\ $$\mathcal{INN_S} : Stack \rightarrow Stack$$\\ Deze functie haalt het bovenste element van de input stack en stopt dit element bovenop de output stack.\\ -(outchar, inchar)\\ - Met behulp van deze gedefinieerde functies kunnen we nu de volgende semantiekregels opstellen:\\ \begin{alignat*}{2} @@ -168,11 +166,5 @@ Met behulp van deze gedefinieerde functies kunnen we nu de volgende semantiekreg {[outnum_{sos}]} \qquad & \langle outnum, s_i, s_o, s\rangle \Rightarrow \langle s_i, \mathcal{OUTN_{SO}}(s_o),\mathcal{D}(s)\rangle\\ -{[inchar_{sos}]} \qquad & -\langle inchar, s_i, s_o, s\rangle \Rightarrow -\langle s_i, s_o, s\rangle\\ -{[outchar_{sos}]} \qquad & -\langle outchar, s_i, s_o, s\rangle \Rightarrow -\langle s_i, s_o, s\rangle\\ \end{alignat*} diff --git a/syntax.tex b/syntax.tex index 455e959..60f8767 100644 --- a/syntax.tex +++ b/syntax.tex @@ -37,11 +37,12 @@ Om de notatie leesbaar en overzichtelijk te houden beschrijven we de syntax niet in de oorspronkelijke kleuren notatie maar gebruiken we een woordelijke notatie. Dan ziet de grammatica er als volgt uit:\\ $S ::= S_1 ; S_2\ |\ push \: n\ |\ pop\ |\ add\ |\ subtract\ -|\ multiply\ |\ divide\ |\\mod\ |\ not\ |\ greater\ -|\ pointer\ |\ switch\ |\ duplicate\ |\ roll\ |\\ -inchar\ |\ innum\ |\ outchar\ |\ outnum$\\ +|\ multiply\ |\ divide\ |\mod\ |\\ not\ |\ greater\ +|\ pointer\ |\ switch\ |\ duplicate\ |\ roll\ |\ +innum\ |\ outnum$\\ -Waarbij $n \in \mathbb{N}_1$. +Waarbij $n \in \mathbb{N}_1$.\\ +De commando's in(char) en out(char) worden hier niet behandeld. \subsection{Piet'} Omdat sommige simpele expressies in \textit{While} veel regels in beslag nemen diff --git a/todo.txt b/todo.txt index 7ccb7c7..64a58bd 100644 --- a/todo.txt +++ b/todo.txt @@ -17,6 +17,7 @@ KLAAR wiskundige operaties op stacks definieren KLAAR onderscheid wiskundige deel KLAAR natuurlijke taal toevoegen voor semantiekbeschrijving KLAAR toevoegen functies/regels aan semantiek -BEZIG toepassen semantiekregels op faculteitsprogramma in Piet' +KLAAR toepassen semantiekregels op faculteitsprogramma in Piet' KLAAR? verdere uitleg Piet' -inchar/outchar eventueel toevoegen aan semantiek +inchar/outchar eventueel toevoegen aan semantiek (voor nu weggelaten) +voor later: waarschijnlijk nog meer analyses in de vorm van afleidingsrijen toevoegen