Circular reference attributed grammars — their evaluation and applications

This paper presents a combination of Reference Attributed Grammars (RAGs) and Circular Attribute Grammars (CAGs). While RAGs allow the direct and easy specification of nonlocally dependent information, CAGs allow iterative fixed-point computations to be expressed directly using recursive (circular)...

Full description

Saved in:
Bibliographic Details
Published inScience of computer programming Vol. 68; no. 1; pp. 21 - 37
Main Authors Magnusson, Eva, Hedin, Görel
Format Journal Article
LanguageEnglish
Published Elsevier B.V 01.08.2007
Subjects
Online AccessGet full text

Cover

Loading…
More Information
Summary:This paper presents a combination of Reference Attributed Grammars (RAGs) and Circular Attribute Grammars (CAGs). While RAGs allow the direct and easy specification of nonlocally dependent information, CAGs allow iterative fixed-point computations to be expressed directly using recursive (circular) equations. We demonstrate how the combined formalism, Circular Reference Attributed Grammars (CRAGs), can take advantage of both these strengths, making it possible to express solutions to many problems in an easy way. We exemplify with the specification and computation of the nullable, first, and follow sets used in parser construction, a problem which is highly recursive and normally programmed by hand using an iterative algorithm. We also present a general demand-driven evaluation algorithm for CRAGs and some optimizations of it. The approach has been implemented and experimental results include computations on a series of grammars including that of Java 1.2. We also revisit some of the classical examples of CAGs and show how their solutions are facilitated by CRAGs.
ISSN:0167-6423
1872-7964
DOI:10.1016/j.scico.2005.06.005