Prima di definire la semantica, occorre porre le basi del linguaggio da definire, per questo motivo andremo a costruire un modello matematico per programmi scritti in tale linguaggio.
Come insiemi di simboli terminali useremo:
Dove le metavariabili sono una qualsiasi variabile dell'insieme, senza specificare se si stia usando a, b, un numero, ecc.
Partendo dai 3 insiemi di base, possiamo derivare tramite BNF i seguenti insiemi:
<aside> 💡 Si noti che al momento la sintassi è ancora ambigua, per questo proseguiamo a definire la semantica.
</aside>
Per ogni categoria sintattica sopra definita ($Exp, Bexp, Com$) si definisce un modello detto sistema di transizione.
Def.: Un sistema di transizione è una tripla $<\Gamma, T,\rarr>$ dove: