Denotational
Denotational semantics is a formal approach to defining the meaning of programming languages by constructing abstract mathematical objects that represent the semantics of programs. In a denotational account, each syntactic construct is mapped to a semantic object in a domain, and the meaning of compound constructs is obtained compositionally from the meanings of their parts. The aim is to provide a precise, language-agnostic description that supports mathematical reasoning and verification.
The method emerged in the late 1960s and early 1970s, with foundational work by Christopher Strachey and
Core ideas include semantic domains, typically mathematical structures such as complete partial orders, and semantic functions
In practice, a language’s constructs are interpreted as functions or relations between domains. For example, in
Applications include language specification, compiler correctness, and formal reasoning about program equivalence. Denotational semantics is often