Formal semantics are precise and important for:

  • implementation of the language; behaviour of each construct is specified providing an abstraction of the execution process which is independent of the machine
  • programmers: formal semantics provides tools / techniques to reason about programs
  • language designers: allows to detect ambiguities in the constructs and suggest improvements and new constructs