Memoization in top-down parsing
Computational Linguistics
Proceedings of the fourth ACM SIGPLAN international conference on Functional programming
Design of a separable transition-diagram compiler
Communications of the ACM
Proceedings of the sixth ACM SIGPLAN international conference on Functional programming
Types and programming languages
Types and programming languages
Fast, Error Correcting Parser Combinatiors: A Short Tutorial
SOFSEM '99 Proceedings of the 26th Conference on Current Trends in Theory and Practice of Informatics on Theory and Practice of Informatics
The coroutine model of attribute grammar evaluation.
The coroutine model of attribute grammar evaluation.
Parsing expression grammars: a recognition-based syntactic foundation
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Journal of Functional Programming
PADS: a domain-specific language for processing ad hoc data
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
ACM Transactions on Programming Languages and Systems (TOPLAS)
SPPF-Style Parsing From Earley Recognisers
Electronic Notes in Theoretical Computer Science (ENTCS)
Semantics and algorithms for data-dependent grammars
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Delayed semantic actions in Yakker
Proceedings of the Eleventh Workshop on Language Descriptions, Tools and Applications
Formal network packet processing with minimal fuss: invertible syntax descriptions at work
PLPV '12 Proceedings of the sixth workshop on Programming languages meets program verification
The Semantics of Parsing with Semantic Actions
LICS '12 Proceedings of the 2012 27th Annual IEEE/ACM Symposium on Logic in Computer Science
Hi-index | 0.00 |
Dependent grammars extend context-free grammars by allowing semantic values to be bound to variables and used to constrain parsing. Dependent grammars can cleanly specify common features that cannot be handled by context-free grammars, such as length fields in data formats and significant indentation in programming languages. Few parser generators support dependent parsing, however. To address this shortcoming, we have developed a new method for implementing dependent parsers by extending existing parsing algorithms. Our method proposes a point-free language of dependent grammars, which we believe closely corresponds to existing context-free parsing algorithms, and gives a novel transformation from conventional dependent grammars to point-free ones. To validate our technique, we have specified the semantics of both source and target dependent grammar languages, and proven our transformation sound and complete with respect to those semantics. Furthermore, we have empirically validated the suitability of our point-free language by adapting four parsing engines to support it: an Earley parsing engine; a GLR parsing engine; memoizing, arrow-style parser combinators; and PEG parser combinators.