Parallel Evaluation in Attribute Grammar-Based Systems
Attributed context-free grammars provide a rigorous basis for the semantic analysis and translation of tree-structured objects and have been used to build a variety of systems. A number of programming language compiler, compiler generators, and language-based editor generators employing attribute grammars have been described in the literature. Many of these systems make use of l-ordered attribute grammars, attribute grammars for which particularly efficient methods for attributing derivation trees have been described. Derivation trees representing constructs of only moderate size may contain thousands of nodes and tens of thousands of attribute instances, and attribution of such trees on uniprocessor systems may require a significant amount of time. One possibility for reducing this time is to find techniques that exploit opportunities for parallelism in the attribution process and allow attribution to be performed on multiprocessor systems. Such techniques would permit attribute grammars to serve as a rigorous foundation for the development of parallel compilation systems and other parallel applications. We present several methods for the parallel attribution of trees derived from l-ordered attribute grammars. These methods take advantage of parallelism implicit in the attribution process and, thus, do not require any special considerations to be taken when constructing grammars. Methods appropriate for use on tightly - and loosely-coupled multiprocessor architectures and for use when complete and incremental tree attribution are required are presented. We present preliminary performance results obtained from implementations of some of the methods on a simple shared-memory multiprocessor simulator embedded within an attribute grammar-based editor generator system. The results suggest that the methods may provide useful reductions in attribution time in some cases.
computer science; technical report
Previously Published As