In most programming languages implementations, the parser produces a syntax
tree data structure by applying the grammar to the source text. The nodes
of the syntax tree are walked or visited by functions that either emit code that
executes, in the case of a compiler, or actually executes, in the case of an interpreter,
the semantic meaning of each construct the programmer used.

katahdin-thesis.pdf