Denotational semantics,
which are a technique of describing the “meaning” of programs as mathematical functions, allowing people to prove theorems and reason about programs as mathematical entities.
Operational semantics,
which describe how a valid program is interpreted as sequences of computational steps.
These sequences then are the meaning of the program.
Translational semantics,
which define a language by using an attribute grammar, which is a formal way to define attributes for the productions of a formal grammar, associating these attributes to values.