# Formal semantics of programming languages

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 several approaches to formal semantics. These include:

- Denotational semantics
- Operational semantics
- Axiomatic semantics
- Action semantics
- Categorical semantics (also called Functorial semantics).

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 the design of Programming Languages, Type theory, Compilers and Interpreterss, Program verification and Model checking.