Circular attribute grammars with remote attribute references and their evaluators

Abstract

Attribute grammars (AGs) are a suitable formalism for the development of language processing systems. However, for languages including unrestricted labeled jumps, such as “goto” in C, the optimizers in compilers are difficult to write in AGs. This is due to two problems that few previous researchers could deal with simultaneously, i.e., references of attribute values on distant nodes and circularity in attribute dependency. This paper proposescircular remote attribute grammars (CRAGs), an extension of AGs that allows (1) direct relations between two distant attribute instances through pointers referring to other nodes in the derivation tree, and (2) circular dependencies, under certain conditions including those that arise from remote references. This extension gives AG programmers a natural means of describing language processors and programming environments for languages that include any type of jump structure. We also show a method of constructing an efficient evaluator for CRAGs called amostly static evaluator. The performance of the proposed evaluator has been measured and compared with dynamic and static evaluators.

DOI: 10.1007/BF03037280

Extracted Key Phrases

7 Figures and Tables

Cite this paper

@article{Sasaki2003CircularAG, title={Circular attribute grammars with remote attribute references and their evaluators}, author={Akira Sasaki and Masataka Sassa}, journal={New Generation Computing}, year={2003}, volume={22}, pages={37-60} }