From 52253200d24afc83eadf205f3ff12629ace55019 Mon Sep 17 00:00:00 2001 From: Mart Lubbers Date: Thu, 12 Jun 2014 16:15:57 +0200 Subject: [PATCH] todo update en arit_expr spelfouten eruit --- an_arit_expr.tex | 37 +++++++++++++++++++------------------ an_if_statement.tex | 31 ++++++++++++++++--------------- an_while_statement.tex | 30 +++++++++++++++--------------- todo.txt | 1 + 4 files changed, 51 insertions(+), 48 deletions(-) diff --git a/an_arit_expr.tex b/an_arit_expr.tex index a87fc92..e46576e 100644 --- a/an_arit_expr.tex +++ b/an_arit_expr.tex @@ -1,18 +1,18 @@ -\subsection{Aritmatische expressies} -Het uitrekenen van een arithmatische expressie in \textit{Piet} moet in +\subsection{Aritmetische expressies} +Het uitrekenen van een arithmetische expressie in \textit{Piet} moet in verschillende stappen gebeuren. Volgens de regels van de wiskunde worden er telkens binaire operaties uitgevoerd tot het vereenvoudigd is tot een enkele -numerieke waarde. Het opvragen van variabelen uit het geheugen word in een -volgende subsectie besproken en we gaan er nu van uit dat dat een triviale +numerieke waarde. Het opvragen van variabelen uit het geheugen wordt in een +volgende paragraaf besproken en we gaan er nu van uit dat dat een triviale operatie is die een of twee variabelen boven aan zetten op een gekozen volgorde.\\ -Na het opvragen van variabele $n$ wordt de variabele boven aan gezet en krijgen -de andere variabelen automatisch andere nummers. De variabelen met een positie -strict kleiner dan $n$ krijgen een positie verhoging van $1$ en de variabelen -met een positie strict groter dan $n$ krijgen een positie verlaging van $1$.\\ -Bijvoorbeeld bij de expressie $1+1$ is de eerste stap twee keen een $1$ op de -stack duwen en vervolgens de binare $+$ operator toe te passen en dat gaat als -volgt:\\ +Na het opvragen van variabele $n$ wordt de variabele boven op de stack gezet en +krijgen de andere variabelen automatisch andere nummers. De variabelen met een +positie strikt kleiner dan $n$ krijgen een positieverhoging van $1$ en de +variabelen met een positie strikt groter dan $n$ krijgen een positieverlaging +van $1$.\\ Bijvoorbeeld bij de expressie $1+1$ is de eerste stap twee keer een +$1$ op de stack duwen en vervolgens de binare $+$ operator toepassen en dat +gaat als volgt:\\ \textbf{While} $x := 1 + 1$\\ \textbf{Piet} \begin{tabular}{cccc} @@ -31,15 +31,16 @@ volgt:\\ {\color{dgreen}\#}\\ {\color{red}\#} & {\color{dred}\#}\\ \end{tabular}\\ -\textbf{Piet'} $push 2, push 3, mul, get y, add$\\ +\textbf{Piet'} $push\ 2, push\ 3, mul, get\ y, add$\\ \subsection{Booleaanse expressies} -Het evalueren van booleaanse expressies gaat hetzelfde als aritmatische -expressies, het enige verschil is dat er binnen de booleanse operatoren -operatoren bestaan die niet voorkomen in \textit{Piet} en deze moeten dus -herschreven worden. De operatoren die herschreven worden zijn: $=, \leq, -\wedge\\ -\begin{array}{ll} +Het evalueren van booleaanse expressies gaat hetzelfde als aritmetische +expressies, het enige verschil is dat er binnen de booleanse operatoren van +\textit{While} operatoren bestaan die niet voorkomen in \textit{Piet} en deze +moeten dus herschreven worden. De operatoren die herschreven worden zijn: $=, +\leq, \wedge$\\ +De herschrijving van onbestaande operatoren in \textit{Piet} gaat als volgt:\\ +$\begin{array}{ll} a \wedge b & a*b\\ a = b & not(a-b)>0\\ a \leq b & \neg(a>b) diff --git a/an_if_statement.tex b/an_if_statement.tex index a1eaaaa..8370748 100644 --- a/an_if_statement.tex +++ b/an_if_statement.tex @@ -1,18 +1,19 @@ \subsection{If statement} -De \textit{if} constructie in \textit{While} van de vorm if $b$ then $S_1$ else $S_2$ -kan worden gerepresenteerd in \textit{Piet} door de representatie van $b$ na een -wit blokje te volgen door een pointer die op basis van het bovenste element op de -stack de richting van de interpreter aanpast. Op het laaste blokje van dit commando -volgen in 2 richtingen twee verschillende paden, waarbij 1 pad correspondeert met -$S_1$ en het andere pad met $S_2$. Wel moeten beide paden uiteindelijk op hetzelfde -punt uitkomen. \\ -In dit voorbeeld representeert het eerste blok een willekeurige boolean $b$, deze -word na een wit blokje gevolgt door het pointer commando. Hierna splitsen de paden -zich op: als de boolean 0 oplevert draait de richting van de interpreter 0 slagen met -de klok mee en gaat dus rechtdoor, als de boolean 1 oplevert draait van de richting -van de interpreter 1 slag met de klok mee en gaat dus naar rechts. In deze twee -richtingen volgen vervolgens de representaties voor $S_1$ en $S_2$, die -uiteindelijk doormiddel van witte blokjes weer op hetzelfde pad uitkomen.\\ +De \textit{if} constructie in \textit{While} van de vorm if $b$ then $S_1$ else +$S_2$ kan worden gerepresenteerd in \textit{Piet} door de representatie van $b$ +na een wit blokje te volgen door een pointer die op basis van het bovenste +element op de stack de richting van de interpreter aanpast. Op het laatste +blokje van dit commando volgen in twee richtingen twee verschillende paden, +waarbij \'e\'en pad correspondeert met $S_1$ en het andere pad met $S_2$. Wel +moeten beide paden uiteindelijk op hetzelfde punt uitkomen. \\ +In dit voorbeeld representeert het eerste blok een willekeurige boolean $b$, +deze wordt na een wit blokje gevolgd door het pointer commando. Hierna splitsen +de paden zich op: als de boolean 0 oplevert draait de richting van de +interpreter 0 slagen met de klok mee en gaat dus rechtdoor, als de boolean 1 +oplevert draait de richting van de interpreter 1 slag met de klok mee en gaat +dus naar rechts. In deze twee richtingen volgen vervolgens de representaties +voor $S_1$ en $S_2$, die uiteindelijk door middel van bochten op hetzelfde pad +uitkomen.\\ \textbf{While} if $b$ then $S_1$ else $S_2$ \\ @@ -30,4 +31,4 @@ uiteindelijk doormiddel van witte blokjes weer op hetzelfde pad uitkomen.\\ & & & & & \color{dorange}$\ast$ & \color{lgray}\_ & \color{lgray}\_ & \color{lgray}\_ & \color{lgray}\_ & \color{lgray}\_ \\ -\end{tabular} \ No newline at end of file +\end{tabular} diff --git a/an_while_statement.tex b/an_while_statement.tex index be40d1d..e095820 100644 --- a/an_while_statement.tex +++ b/an_while_statement.tex @@ -1,18 +1,18 @@ \subsection{While statement} -De \textit{while} constructie in \textit{While} van de vorm while $b$ do $S$ -kan worden gerepresenteerd in \textit{Piet} door de representatie van $b$ na een -wit blokje te volgen door een pointer die op basis van het bovenste element op de -stack de richting van de interpreter aanpast. Op het laaste blokje van dit commando -volgen in 2 richtingen twee verschillende paden, waarbij 1 pad correspondeert met -$S$ en het andere pad met het einde van de loop. -In dit voorbeeld representeert het eerste blok een willekeurige boolean $b$, deze -word na een wit blokje gevolgt door het pointer commando. Hierna splitsen de paden -zich op: als de boolean 0 oplevert draait de richting van de interpreter 0 slagen met -de klok mee en gaat dus rechtdoor, als de boolean 1 oplevert draait van de richting -van de interpreter 1 slag met de klok mee en gaat dus naar rechts. Het pad na rechts -word na een aantal witte blokjes gevolgt door de representatie van $S$. Hierna volgt -weer een aantal witte blokjes waardoor het pad uiteindelijk uitkomt bij het begin van -boolean $b$.\\ +De \textit{while} constructie in \textit{While} van de vorm while $b$ do $S$ +kan worden gerepresenteerd in \textit{Piet} door de representatie van $b$ na +een wit blokje te volgen door een pointer die op basis van het bovenste element +op de stack de richting van de interpreter aanpast. Op het laatste blokje van +dit commando volgen in twee richtingen twee verschillende paden, waarbij +\'e\'en pad correspondeert met $S$ en het andere pad met het einde van de loop. +In dit voorbeeld representeert het eerste blok een willekeurige boolean $b$, +deze wordt na een wit blokje gevolgd door het pointer commando. Hierna splitsen +de paden zich op: als de boolean 0 oplevert draait de richting van de +interpreter 0 slagen met de klok mee en gaat dus rechtdoor, als de boolean 1 +oplevert draait de richting van de interpreter 1 slag met de klok mee en gaat +dus naar rechts. Het pad naar rechts wordt na een aantal witte blokjes gevolgd +door de representatie van $S$. Hierna volgt weer een aantal witte blokjes +waardoor het pad uiteindelijk uitkomt bij het begin van boolean $b$.\\ \textbf{While} while $b$ do $S$ \\ @@ -27,4 +27,4 @@ boolean $b$.\\ \color{lgray}\_ & \color{lgray}\_ & \color{lgray}\_ & \color{dorange}$\ast$ & \color{lgray}$\ast$ & \color{orange}$\ast$ & \color{lgray}\_ & \color{lgray}\_ \\ & & & \color{lgray}$\ast$ & \color{lgray}$\ast$ & \color{lgray}$\ast$ \\ & & & \color{lgray}$\ast$ & \color{lgray}$\ast$ & \color{lgray}$\ast$ \\ -\end{tabular} \ No newline at end of file +\end{tabular} diff --git a/todo.txt b/todo.txt index 9407fa9..67194a1 100644 --- a/todo.txt +++ b/todo.txt @@ -1,2 +1,3 @@ Bochten uitleggen(analysis.tex) Semantics(marjolein) +Uitleggen waarom piet' verschijnt in expressies(an_arit_expr.tex) -- 2.20.1