Bij natuurlijke semantiek(ns) ligt de nadruk op de relatie tussen de begin en de eind state. 
Het nadeel hiervan is dat programma’s die niet termineren geen bewijsbomen hebben. 
Hierdoor is het niet mogelijk om eigenschappen te bewijzen voor zulke programma’s.
Bij structurele operationele semantiek(sos) ligt de nadruk juist op de individuele stappen van de executie en heeft wel bewijsrijen voor programma’s die niet termineren.\\
Om deze redenen hebben we gekozen voor sos.\\
Een toestand in onze semantiek word beschreven door drie stacks; input, output en programma. Respectievelijk benoemen we deze met $s_i, s_o, s$ en beschrijven ze de STDIN, STDOUT en interne stack van het programma.
Stacks worden gerepresenteerd als: $s=\{n_0, n_1, ..., n_n\}$ waarbij $n_i\in\mathbb{Z}$\\
Het transitie systeem zal twee verschillende transities kennen, namelijk:\\
$s\rightarrow \langle S, s_i, s_o, s\rangle$ en $s\rightarrow \langle s_i, s_o, s\rangle$\\
Waarbij de laatste transitie duidt op een terminerende transitie en de eerste op een niet terminerende transitie.\\
Bij de semantiek verwachten we nog een klein probleem dat te maken heeft met het feit dat we nog niet precies weten hoe we de righting van het programma en moeten implementeren, ook weten we nog niet of dit \"uberhaupt nodig is in de semantiekbeschrijving.
