The syntax definition formalism SDF—reference manual—
ACM SIGPLAN Notices
Scannerless NSLR(1) parsing of programming languages
PLDI '89 Proceedings of the ACM SIGPLAN 1989 Conference on Programming language design and implementation
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
Efficient Parsing for Natural Language: A Fast Algorithm for Practical Systems
Efficient Parsing for Natural Language: A Fast Algorithm for Practical Systems
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
CC '99 Proceedings of the 8th International Conference on Compiler Construction, Held as Part of the European Joint Conferences on the Theory and Practice of Software, ETAPS'99
Disambiguation Filters for Scannerless Generalized LR Parsers
CC '02 Proceedings of the 11th International Conference on Compiler Construction
WCRE '01 Proceedings of the Eighth Working Conference on Reverse Engineering (WCRE'01)
JTS: Tools for Implementing Domain-Specific Languages
ICSR '98 Proceedings of the 5th International Conference on Software Reuse
Generating LR syntax error messages from examples
ACM Transactions on Programming Languages and Systems (TOPLAS)
Proceedings of the 3rd international conference on Aspect-oriented software development
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
abc: an extensible AspectJ compiler
Proceedings of the 4th international conference on Aspect-oriented software development
Adding trace matching with free variables to AspectJ
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Adding open modules to AspectJ
Proceedings of the 5th international conference on Aspect-oriented software development
A join point for loops in AspectJ
Proceedings of the 5th international conference on Aspect-oriented software development
ACM Transactions on Programming Languages and Systems (TOPLAS)
Polyglot: an extensible compiler framework for Java
CC'03 Proceedings of the 12th international conference on Compiler construction
Open modules: modular reasoning about advice
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
Generalized type-based disambiguation of meta programs with concrete object syntax
GPCE'05 Proceedings of the 4th international conference on Generative Programming and Component Engineering
A versatile kernel for multi-language AOP
GPCE'05 Proceedings of the 4th international conference on Generative Programming and Component Engineering
SC'06 Proceedings of the 5th international conference on Software Composition
Semantics of static pointcuts in aspectJ
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
ReLAx: implementing KALA over the reflex AOP kernel
Proceedings of the 2nd workshop on Domain specific aspect languages
Preventing injection attacks with syntax embeddings
GPCE '07 Proceedings of the 6th international conference on Generative programming and component engineering
Jeannie: granting java native interface developers their wishes
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Modularity first: a case for mixing AOP and attribute grammars
Proceedings of the 7th international conference on Aspect-oriented software development
KALA: Kernel aspect language for advanced transactions
Science of Computer Programming
Stratego/XT 0.17. A language and toolset for program transformation
Science of Computer Programming
Designing Syntax Embeddings and Assimilations for Language Libraries
Models in Software Engineering
A proposal for extensible AspectJ
Proceedings of the 4th workshop on Domain-specific aspect languages
Software Language Engineering
Faster Scannerless GLR Parsing
CC '09 Proceedings of the 18th International Conference on Compiler Construction: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
Verifiable composition of deterministic grammars
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation
Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications
Preventing injection attacks with syntax embeddings
Science of Computer Programming
Pure and declarative syntax definition: paradise lost and regained
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
MetaLexer: a modular lexical specification language
Proceedings of the tenth international conference on Aspect-oriented software development
EventCJ: a context-oriented programming language with declarative event-based context transition
Proceedings of the tenth international conference on Aspect-oriented software development
Natural and flexible error recovery for generated parsers
SLE'09 Proceedings of the Second international conference on Software Language Engineering
Parse forest diagnostics with dr. ambiguity
SLE'11 Proceedings of the 4th international conference on Software Language Engineering
Natural and Flexible Error Recovery for Generated Modular Language Environments
ACM Transactions on Programming Languages and Systems (TOPLAS)
Hi-index | 0.00 |
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 compositional language, ie 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 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 the reasonable performance of scannerless generalized-LR parsing for this grammar.