Attribute grammars have proven their utility for the specification of programming language translators. When applied to complex languages, these attribute grammars are likewise complex. Modular composition of smaller attribute grammars provides a structure for making a large complex attribute grammar easier to understand, develop, and maintain. In this paper, Carle and Pollock refer to these attribute grammar dialects as hierarchical attribute grammars.
One of the goals of research on attribute grammars has been efficient incremental evaluation of attribute values. One of the most common approaches is based on change propagation. When an attributed syntax tree is modified, the affected attributes must be modified. When applied to hierarchical attribute grammars, change propagation cannot be isolated to each module. This means that change propagation algorithms cannot be limited to an examination of those modules that have been modified. The authors present an analysis that shows that change propagation is unsuitable for achieving an optimal incremental evaluator for hierarchical attribute grammars.
Carle and Pollock conclude this paper with three examples of incremental evaluation algorithms that use a more applicative approach to achieving optimality.