From: Marjolein Zwerver Date: Sat, 31 May 2014 14:24:43 +0000 (+0200) Subject: stukje Piet' toegevoegd X-Git-Url: https://git.martlubbers.net/?a=commitdiff_plain;h=5088eeeebeb83674eb2e5e84f22a7c2331e38dcf;p=sec1415.git stukje Piet' toegevoegd --- diff --git a/an_variabelen.tex b/an_variabelen.tex index b386acf..6761898 100644 --- a/an_variabelen.tex +++ b/an_variabelen.tex @@ -13,6 +13,7 @@ Bij het opvragen van een vaste waar $Get(n)$ \subsubsection{Unair} +\label{subsec:unair} Als er een operator uitgevoerd wordt die slechts \'e\'en waarde vraagt van de stack hoeft er slechts \'e\'en waarde boven aan de stack gezet te worden en dit gaat met de volgende operaties bij $n>1$:\\ diff --git a/semantics.tex b/semantics.tex index 00eca8a..34acedc 100644 --- a/semantics.tex +++ b/semantics.tex @@ -102,12 +102,12 @@ 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.\\ -out number (output stack) functie (outnum, r. 79):\\ +out number (output stack) functie (outnum, r. 70):\\ Deze functie past de output stack aan als er een integer naartoe geschreven word:\\ $$\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. 84):\\ +in number (stack) functie (innum, r. 75):\\ 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.\\ @@ -118,11 +118,11 @@ Met behulp van deze gedefinieerde functies kunnen we nu de volgende semantiekreg \begin{alignat*}{2} {[comp^1_{sos}]}\qquad & -\frac{\langle S_1, s\rangle \Rightarrow \langle S'_1, 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'\rangle} +{\langle S_1 ;S_2, s\rangle \Rightarrow \langle S_1;S'_2, s'\rangle}\\ {[comp^2_{sos}]}\qquad & -\frac{\langle S_1, s\rangle \Rightarrow \langle s'\rangle} -{\langle S_1 ;S_2, s\rangle \Rightarrow \langle S_2, s'\rangle}\\ +\frac{\langle S_2, s\rangle \Rightarrow \langle s'\rangle} +{\langle S_1 ;S_2, s\rangle \Rightarrow \langle S_1, s'\rangle}\\ {[pop_{sos}]}\qquad & \langle pop, s_i, s_o, s\rangle \Rightarrow \langle s_i, s_o,\mathcal{D}(s)\rangle\\ diff --git a/syntax.tex b/syntax.tex index 9f1809e..455e959 100644 --- a/syntax.tex +++ b/syntax.tex @@ -42,3 +42,13 @@ $S ::= S_1 ; S_2\ |\ push \: n\ |\ pop\ |\ add\ |\ subtract\ inchar\ |\ innum\ |\ outchar\ |\ outnum$\\ Waarbij $n \in \mathbb{N}_1$. + +\subsection{Piet'} +Omdat sommige simpele expressies in \textit{While} veel regels in beslag nemen +als deze omgeschreven zouden worden naar een semantisch equivalent programma +in de bovengenoemde tussentaal hebben we ook nog een tweede syntax: Piet'. +In Piet' worden de commando's die beschreven worden in de tussentaal aangegeven +door de eerste 3 letters van het commando, met uitzondering van het commando +\textit{push}. Voor het ophalen van een variabele zoals staat beschreven in +subsectie \ref{subsec:unair} gebruiken we ook \textit{get n}. De commando's +worden gescheiden door komma's inplaats van puntkomma's. diff --git a/todo.txt b/todo.txt index bdc9a01..7ccb7c7 100644 --- a/todo.txt +++ b/todo.txt @@ -1,4 +1,5 @@ spelfouten!! +uitleg bij tabel 4 Mart: KLAAR variabelen opslag @@ -17,5 +18,5 @@ KLAAR onderscheid wiskundige deel KLAAR natuurlijke taal toevoegen voor semantiekbeschrijving KLAAR toevoegen functies/regels aan semantiek BEZIG toepassen semantiekregels op faculteitsprogramma in Piet' -inchar/outchar eventueel toevoegen aan semantiek? -verdere uitleg Piet' +KLAAR? verdere uitleg Piet' +inchar/outchar eventueel toevoegen aan semantiek