2.4 denotational semantics