English

Yacc is dead

Programming Languages 2015-03-17 v1

Abstract

We present two novel approaches to parsing context-free languages. The first approach is based on an extension of Brzozowski's derivative from regular expressions to context-free grammars. The second approach is based on a generalization of the derivative to parser combinators. The payoff of these techniques is a small (less than 250 lines of code), easy-to-implement parsing library capable of parsing arbitrary context-free grammars into lazy parse forests. Implementations for both Scala and Haskell are provided. Preliminary experiments with S-Expressions parsed millions of tokens per second, which suggests this technique is efficient enough for use in practice.

Cite

@article{arxiv.1010.5023,
  title  = {Yacc is dead},
  author = {Matthew Might and David Darais},
  journal= {arXiv preprint arXiv:1010.5023},
  year   = {2015}
}

Comments

18 pages; submitted October 2009 to ESOP; rejected

R2 v1 2026-06-21T16:33:29.148Z