A technique where the structure of a language processor (e.g. a
compiler) is based on the structure of the language's
translator corresponding to each category in the abstract
syntax. That procedure is responsible for processing
constructs of that category. Each procedure would call others
corresponding to the construct's subconstituents and then
combine their results to give the overall result for that
construct.