The field of formal semantics encompasses all of the following:
It has close links with other areas of computer science such as programming language design, type theory, compilers and interpreters, program verification and model checking.
There are many approaches to formal semantics; these belong to three major classes:
Apart from the choice between denotational, operational, or axiomatic approaches, most variations in formal semantic systems arise from the choice of supporting mathematical formalism.
Some variations of formal semantics include the following:
For a variety of reasons, one might wish to describe the relationships between different formal semantics. For example:
It is also possible to relate multiple semantics through abstractions via the theory of abstract interpretation.