An algorithm for generating abstract syntax trees
Computer Languages
Efficient algorithms for automatic construction and compactification of parsing
ACM Transactions on Programming Languages and Systems (TOPLAS)
On the Covering and Reduction Problems for Context-Free Grammars
Journal of the ACM (JACM)
The Cornell program synthesizer: a syntax-directed programming environment
Communications of the ACM
Regular right part grammars and their parsers
Communications of the ACM
Deterministic parsing of ambiguous grammars
Communications of the ACM
Context-Free Grammars: Covers, Normal Forms, and Parsing
Context-Free Grammars: Covers, Normal Forms, and Parsing
Introduction to Formal Language Theory
Introduction to Formal Language Theory
POPL '82 Proceedings of the 9th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Compiler Construction, An Advanced Course, 2nd ed.
An algebra for program fragments
SLIPE '85 Proceedings of the ACM SIGPLAN 85 symposium on Language issues in programming environments
The Architecture of Pan I
Production trees: a compact representation of parsed programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
The Pan language-based editing system for integrated development
SDE 4 Proceedings of the fourth ACM SIGSOFT symposium on Software development environments
The Pan language-based editing system
ACM Transactions on Software Engineering and Methodology (TOSEM)
AMT—the Ada maintenance toolchest
TRI-Ada '91 Proceedings of the conference on TRI-Ada '91: today's accomplishments; tomorrow's expectations
Generation of Interactive Parsers with Error Handling
IEEE Transactions on Software Engineering
Controlled grammatic ambiguity
ACM Transactions on Programming Languages and Systems (TOPLAS)
Efficient and flexible incremental parsing
ACM Transactions on Programming Languages and Systems (TOPLAS)
Hi-index | 0.00 |
Processors for programming languages and other formal languages typically use a concrete syntax to describe the user's view of a program and an abstract syntax to represent language structures internally. Grammatical abstraction is defined as a relationship between two context-free grammars. It formalizes the notion of one syntax being “more abstract” than another. Two variants of abstraction are presented. Weak grammatical abstraction supports (i) the construction during LR parsing of an internal representation that is closely related to the abstract syntax and (ii) incremental LR parsing using that internal representation as its base. Strong grammatical abstraction tightens the correspondence so that top-down construction of incrementally-parsable internal representations is possible. These results arise from an investigation into language-based editing systems, but apply to any program that transforms a linguistic object from a representation in its concrete syntax to a representation in its abstract syntax or vice versa.