Compositional semantics allows us to define the interpretation of complex utterances in terms of simpler ones.
each node in the parse tree has a denotation, which is computed recursively in terms of the node's children via a set of simple rules.