Marpa is an efficient general BNF parser, based on Aycock and Horspool's and Joop Leo's modifications of the Earley algorithm. Marpa parses any language whose grammar can be written in BNF. That includes recursive grammars, ambiguous grammars, infinitely ambiguous grammars and grammars with useless or empty productions. Marpa does both left- and right-recursion in linear time -- if a grammar is in any class currently in practical use, Marpa will parse it in linear time.
Marpa::R2 is the latest CPAN release of the Perl version of the Marpa parsing algorithm.
A summary of the history of Parsing Theory. This piece proved very popular, getting over 10,000 views in a 48 hour period, which is a stunning number for mathematical web page with no illustrations. (The Russian translation did add a picture.)
This piece is a very short, very high-level overview of the theory behind Marpa.
This paper contains the details of the theory behind the recognizer portion of the Marpa algorithm, including proofs of correctness, and of the complexity claims.
A three part series published in The Perl Review:
According to Wikipedia's "Programming Languages" article, these contain the first proof of undecidability for the syntax of a programming language.
(As co-author with the Urban Land Institute.) The books I co-authored with are in the studies for years 1990, 1993, 1995, 1997 and 1998.
This paper appeared in Communications of the ACM, vol. 29, no. 6, pp. 556-557, 1986.