Denotative
Mathematics is denotative:
When a mathematician develops a theorem, she or he defines symbols, then writes down facts that relate those symbols. The order of those facts is unimportant, so long as all the symbols used are defined, and it certainly does not matter where each fact is written on the paper! A proof is a static thing—its parts just are, they do not act.
- The Anatomy of Programming Languages (page 354 of 600).
This is because mathematical expressions meet the conditions specified in The Next 700 Programming Languages:
(from page 6 of 10)
8. Application and Denotation
The commonplace expressions of arithmetic and algebra have a certain simplicity that most communications to computers lack. In particular,
(a) each expression has a nesting subexpression structure,
(b) each subexpression denotes something (usually a number, truth value or numerical function),
(c) the thing an expression denotes, i.e., its "value", depends only on the values of its subexpressions, not on other properties of them.
Given a mathematical expression , then:
A programming language can also be denotative if all possible terms allowed in the language (including entire programs) satisfy those conditions. This can be verified by specifying a denotational semantics for the language () - a mapping for each term in the language to its mathematical description.