| |||||||||
In theoretical computer science formal semantics is the field concerned with the rigorous mathematical study of the meaning of programming languages and models of computation.
The formal semantics of a language is given by a mathematical model to represent the possible computations described by the language.
There are many approaches to providing a formal semantics for programming languages. The three main classes of approach are:
Different formal semantics may be linked through abstractions within the theory of abstract interpretation.
The field of formal semantics also studies the relations between different models, the relations between different approaches to meaning, and the relation between computation and the underlying mathematical structures, from fields such as logic, set theory, model theory, category theory, etc.
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.