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