Comparing Bottom-up with Top-down Parsing Architectures for the Syntax Definition Formalism from a Disambiguation Standpoint
Context-free general parsing and disambiguation algorithms are threaded throughout the research and engineering career of Eelco Visser. Both our Ph.D. theses featured the study of “disambiguation.” Disambiguation is the declarative definition of choices among different parse trees, derived using the same context-free grammar, for the same input sentence.
This essay highlights the differences between syntactic disambiguation for context-free general parsing in a top-down architecture and a bottom-up architecture. The differences between top-down and bottom-up are mainly observed as practical aspects of the software architecture and software implementation. Eventually, the concept of data-dependent context-free grammar brings all engineering perspectives of disambiguation back into a conceptual (declarative) framework independent of the parsing architecture.
The novelty in this essay is the juxtaposition of three general parsing architectures from a disambiguation point of view: SGLR, SGLL, and DDGLL. It also motivates design decisions in the parsing architectures for SDF{1,2} and Rascal with previously unpublished detail. The essay falls short of a literature review and a tool evaluation since it does not investigate the disambiguation methods of the many other parser generator tools that exist. The fact that only the implementation algorithms are different between the compared parsing architectures, while the syntax definition formalisms have practically the same formal semantics for historical reasons, nicely “isolates the variable” of interest.
We hope this essay lives up to the enormous enthusiasm, curiosity, and drive for perfection in syntax definition and parsing that Eelco always radiated. We dearly miss him.
- Researcher, see http://jurgen.vinju.org, in
- Software Language Engineering
- Programming Languages
- Empirical Software Engineering
- Software Evolution
- (Co)-Designer and/or (co-)engineer of (selected):
- Rascal Metaprogramming Language http://www.rascalmpl.org
- Rascal VScode https://github.com/usethesource/rascal-language-servers
- FlyBytes https://github.com/cwi-swat/flybytes
- Vallang http://www.usethesource.io/projects/vallang
- OSSMETER http://www.ossmeter.org
-
Titles
- Full professor of Automated Software Analysis at TU Eindhoven
- Senior Researcher in the SWAT group (Software Analysis and Transformation) at Centrum Wiskunde & Informatica https://www.cwi.nl/research/groups/software-analysis-and-transformation
- Co-owner of SWAT.engineering BV http://www.swat.engineering
Wed 5 AprDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
14:00 - 15:30 | Session 3: Parsing & TransformationEelco Visser Commemorative Symposium at Theatre Hall Chair(s): Bernd Fischer Stellenbosch University, South Africa | ||
14:00 10mTalk | Context in Parsing: Techniques and Applications Eelco Visser Commemorative Symposium Eric Van Wyk Department of Computer Science and Engineering, University of Minnesota, USA Pre-print | ||
14:10 10mTalk | Comparing Bottom-up with Top-down Parsing Architectures for the Syntax Definition Formalism from a Disambiguation Standpoint Eelco Visser Commemorative Symposium Jurgen Vinju CWI; Eindhoven University of Technology Pre-print | ||
14:20 10mTalk | Analysing the SML97 Definition: Lexicalisation Eelco Visser Commemorative Symposium Elizabeth Scott Royal Holloway University of London, Adrian Johnstone Royal Holloway University of London | ||
14:30 10mTalk | On the Origins of Coccinelle Eelco Visser Commemorative Symposium Julia Lawall Inria File Attached | ||
14:40 10mTalk | Typed Multi-Language Strategy Combinators Eelco Visser Commemorative Symposium James Koppel Massachusetts Institute of Technology, USA | ||
14:50 10mTalk | Towards Modular Compilation Using Higher-Order Effects Eelco Visser Commemorative Symposium Jaro Reinders TU Delft | ||
15:00 10mTalk | Visitor Optimization Revisited – Realizing Traversal Graph Pruning by Runtime Bytecode Generation Eelco Visser Commemorative Symposium | ||
15:10 10mTalk | Refactoring = Substitution + Rewriting: Towards Generic, Language-Independent Refactorings Eelco Visser Commemorative Symposium DOI Pre-print | ||
15:20 10mOther | Session closing Eelco Visser Commemorative Symposium |