Omdat Piet niet heel complex is gaan we voor dit werkstuk de hele taal beschrijven.
Tijdens het interpreteren van een Piet programma wordt een serie commando’s uitgevoerd in een bepaalde toestand.

De grammatica ziet er zo uit:\\
$S ::= S1 ; S2\ |\ push\  n1\ |\ pop\ z\ |\ add\ z1\ z2\ |\ subtract\ z1\ z2\ |\ multiply\ z1\ z2\ |\ divide\ z1\ z2\ |\\
mod\ z1\ z2\ |\ not\ z\ |\ greater\ z1\ z2\ |\ pointer\ z\ |\ switch\ z\ |\ duplicate\ z\ |\ roll\ z1\ z2\ |\\
in(char)\ c\ |\ in(number)\ z\ |\ out(char)\ z\ |\ out(number)\ z$\\
waarbij $n\in\mathbb{N}, z\in\mathbb{Z}$ en $c\in\{1, 2, ..., m$ waar $m$ het nummer is van het hoogste unicode karakter.\\
Een probleem dat we verwachten is dat we op met deze beschrijving zeer grote bewijs-bomen/rijen krijgen vanwege het grote aantal composities, hier moeten we misschien nog iets anders op verzinnen.
