2010 · 52 citations · 22 references
ComputingComputer ScienceComputer SystemsNatural Language ProcessingProgramming LanguagesSyntaxGrammarParsingSyntactic AnalysisSyntactic ParsingSyntax AnalysisSyntax ParsingAbstractionContext-free Grammar ParsingContext-free GrammarsModularityParser DesignParsing AlgorithmsParsing With Context-free GrammarsRegular Expressions
We present the design and theory of a new parsing engine, YAKKER, capable of satisfying the many needs of modern programmers and modern data processing applications. In particular, our new parsing engine handles (1) full scannerless context-free grammars with (2) regular expressions as right-hand sides for defining nonterminals. YAKKER also includes (3) facilities for binding variables to intermediate parse results and (4) using such bindings within arbitrary constraints to control parsing. These facilities allow the kind of data-dependent parsing commonly needed in systems applications, particularly those that operate over binary data. In addition, (5) nonterminals may be parameterized by arbitrary values, which gives the system good modularity and abstraction properties in the presence of data-dependent parsing. Finally, (6) legacy parsing libraries,such as sophisticated libraries for dates and times, may be directly incorporated into parser specifications. We illustrate the importance and utility of this rich collection of features by presenting its use on examples ranging from difficult programming language grammars to web server logs to binary data specification. We also show that our grammars have important compositionality properties and explain why such properties areimportant in modern applications such as automatic grammar induction.
22
Semantics of context-free languages
Donald E. Knuth · Theory of Computing Systems · 1968 · 2K citations
Yacc : Yet Another Compiler Compiler
S. C. Johnson, Murray Hill · 1978 · 1.2K citations
An efficient context-free parsing algorithm
Jay Earley · Communications of the ACM · 1970 · 817 citations · Full text
The next 700 programming languages
P. J. Landin · Communications of the ACM · 1966 · 581 citations · Full text