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
- Categorical semantics (also called Functorial semantics)

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.