faculteit in piet accent uitgeschreven
[sec1415.git] / syntax.tex
1 \subsection{Originele Syntax}
2 De ware syntax voor piet is makkelijk te beschrijven in een zeer grote tabel
3 die gedeeltelijk beschreven is in tabel \ref{tab:sy1}.
4 \begin{table}[h]
5 \caption{Gedeeltelijke ware syntax van \textit{Piet}}
6 \label{tab:sy1}
7 \begin{tabular}{l|cccccc} %p{1em}|p{1em}p{1em}p{1em}p{1em}p{1em}p{1em}p{1em}}
8 \textbackslash & {\color{lred}\#} & {\color{lyellow}\#} &
9 {\color{lgreen}\#}& {\color{lcyan}\#} &
10 {\color{lblue}\#} & ...\\
11 \hline
12 {\color{lred}\#} & - & inc & dup & gre & ... & ...\\
13 {\color{lyellow}\#} & add & - & inc & dup & ... & ...\\
14 {\color{lgreen}\#} & div & add & - & inc & ... & ...\\
15 {\color{lcyan}\#} & gre & div & add & - & ... & ...\\
16 {\color{lblue}\#} & dup & gre & div & add & ... & ...\\
17 {\color{lmagenta}\#} & inc & dup & gre & div & ... & ...\\
18 {\color{red}\#} & pus & oun & rol & ... & ... & ...\\
19 {\color{yellow}\#} & sub & pus & oun & ... & ... & ...\\
20 {\color{green}\#} & mod & sub & pus & ... & ... & ...\\
21 {\color{cyan}\#} & poi & mod & sub & ... & ... & ...\\
22 {\color{blue}\#} & rol & poi & mod & ... & ... & ...\\
23 {\color{magenta}\#} & oun & rol & poi & ... & ... & ...\\
24 {\color{dred}\#} & pop & ouc & ouc & ... & ... & ...\\
25 {\color{dyellow}\#} & mul & pop & ouc & ... & ... & ...\\
26 {\color{dgreen}\#} & not & mul & pop & ... & ... & ...\\
27 {\color{dcyan}\#} & swi & not & mul & ... & ... & ...\\
28 {\color{dblue}\#} & inn & swi & not & ... & ... & ...\\
29 {\color{dmagenta}\#} & ouc & ouc & swi & ... & ... & ...\\
30 {\color{black}\#} & blo & blo & blo & ... & ... & ...\\
31 {\color{white}\#} & ski & ski & ski & ... & ... & ...\\
32 \end{tabular}
33 \end{table}
34
35 \subsection{Tussentaal}
36 Om de notatie leesbaar en overzichtelijk te houden beschrijven we de syntax
37 niet in de oorspronkelijke kleuren notatie maar gebruiken we een woordelijke
38 notatie. Dan ziet de grammatica er als volgt uit:\\
39 $S ::= S1 ; S2\ |\ push\ n1\ |\ pop\ z\ |\ add\ z1\ z2\ |\ subtract\ z1\ z2\
40 |\ multiply\ z1\ z2\ |\ divide\ z1\ z2\ |\\ mod\ z1\ z2\ |\ not\ z\ |\ greater\
41 z1\ z2\ |\ pointer\ z\ |\ switch\ z\ |\ duplicate\ z\ |\ roll\ z1\ z2\ |\\
42 in(char)\ c\ |\ in(number)\ z\ |\ out(char)\ z\ |\ out(number)\ z$\\ waarbij
43 $n\in\mathbb{N}, z\in\mathbb{Z}$ en $c\in\{1, 2, ..., m$ waar $m$ het nummer is
44 van het hoogste unicode karakter.\\
45
46 Een probleem dat we verwachten is dat we op
47 met deze beschrijving zeer grote bewijs-bomen/rijen krijgen vanwege het grote
48 aantal composities, hier moeten we misschien nog iets anders op verzinnen.