Attribute grammars: attribute evaluation methods
Methods and tools for compiler construction
Lazy recursive descent parsing for modular language implementation
Software—Practice & Experience
Incremental generation of LR parsers
Computer Languages
Incremental Generation of Parsers
IEEE Transactions on Software Engineering
Composable attribute grammars: support for modularity in translator design and implementation
POPL '92 Proceedings of the 19th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Generating the analytic component parts of syntax-directed editors with efficient-error recovery
Journal of Systems and Software
Extending attribute grammars to support programming-in-the-large
ACM Transactions on Programming Languages and Systems (TOPLAS)
Modularity and reusability in attribute grammars
Acta Informatica
Attribute grammar paradigms—a high-level methodology in language implementation
ACM Computing Surveys (CSUR)
Efficient incremental LR parsing for syntax-directed editors
ACM Transactions on Programming Languages and Systems (TOPLAS)
On the relationship between LL(1) and LR(1) grammars
Journal of the ACM (JACM)
Attributed Grammars as a Specification Method
Proceedings on Attribute Grammars, Applications and Systems
Hi-index | 0.00 |
Complex languages are often modularized into sublanguages and the compiler is accordingly organized as a set of separate modules. Modularization (called federalization) is beneficial for beating complexity, for maintenance, and for reuse. Focusing on syntax analysis, we consider the decomposition of a grammar into deterministic subgrammars. We study three conditions for determinism in grammar partitioning: first using homogeneous modules of the LR(1) or LL(1) kind; then using heterogeneous modules (LR(1) or LL(1)). Federalization slightly decreases the generality of LR(1) parsers, but not of LL(1) ones, and it allows to handle some grammars which are not LALR(1). Experimental results show that LR(1) federal automata have fewer (up to 60%) states than monolithic LR(1) automata. Criteria for modularization, practical experiences and hints to semantic decomposition issues conclude the paper.