Three types of semantics

  1. Denotational - functions
  2. operational - transitions
  3. Aximotic - logic assertions

Expr := Const int | Plus expr expr | Times expr expr

Decrational semantics is a function

D: syntax → semantics

Plus (Const 1) (Const 2) -(denotes, evals)→ Const 2

D(e) = n, if e = Const n

D(e1) + D(e2) + … + D(en), if e Plus

D(e1) * D(e2) * … * D(en), if e Times

denotation sign [[]]

[[Const n]] = n

[[Plus e1 e2]] = [[e1]] + [[e2]]

example

fip Const n = Const n