Martin Bravenboer, Eric Tanter, and Eelco Visser.
Declarative, Formal, and Extensible Syntax Definition for AspectJ. A Case for Scannerless Generalized-LR Parsing.
In W. H. Cook, editor,
Proceedings of the 21st
ACM SIGPLAN Conference on Object-Oriented Programing, Systems, Languages, and Applications (OOPSLA'06),
Portland, Oregon, USA, October 2006.
ACM SIGPLAN. (Accepted for publication)
Abstract
Aspect-Oriented Programming (AOP) is attracting attention from both
research and industry, as illustrated by the ever-growing popularity
of AspectJ, the de facto standard AOP extension of Java. From a
compiler construction perspective, AspectJ is interesting as it is a
typical example of a compositional language, i.e., a language composed
of a number of separate languages with different syntactical styles:
in addition to plain Java, AspectJ includes a language for defining
pointcuts and one for defining advices. Language composition
represents a non-trivial challenge for conventional parsing
techniques. First, combining several languages with different lexical
syntax leads to considerable complexity in the lexical states to be
processed. Second, as new language features for AOP are being
explored, many research proposals are concerned with further extending
the AspectJ language, resulting in a need for an extensible syntax
definition.
This paper shows how scannerless parsing elegantly addresses the
issues encountered by conventional techniques when parsing AspectJ. We
present the design of a modular, extensible, and formal definition of
the lexical and context-free aspects of the AspectJ syntax in the
Syntax Definition Formalism SDF, which is implemented by a
scannerless, generalized-LR parser (SGLR). We introduce grammar mixins
as a novel application of SDF's modularity features, which allows the
declarative definition of different keyword policies and combination
of extensions. We illustrate the modular extensibility of our
definition with syntax extensions taken from current research on
aspect languages. Finally, benchmarks show that the performance of
scannerless generalized-LR parsing for this grammar is comparable to
the parser of abc.
Related