Ocean of Awareness
Mon, 03 Sep 2012
Marpa::R2 is beta
is now beta.
Marpa is a new parsing algorithm,
based on decades of prior art.
It is a practical and efficient solution
targeted at all parsing problems that are too
complex for regular expressions.
module is the most recent Marpa module.
Marpa is also available as the
which is stable and bug-fix only.
Both Marpa modules:
Parse everything you can write in BNF.
classes of grammar in practical use today in linear time.
Parse all BNF grammars
in times considered theoretically optimal.
For unambiguous grammars, Marpa is never worse than
For ambiguous grammars, Marpa is never worse than
Marpa never goes exponential.
Are fully aware, at every point in the parse, of
all the rules they are parsing,
how far into them they have proceeded,
and of what tokens they expect next.
Especially with Marpa::R2,
this information is available
to the application
conveniently and efficiently.
Do not need to be handwritten.
Marpa is available as a open-source library.
It is written in C,
and the C library can be used
a Perl interface.
For general BNF parsing,
do not require
the user to craft
a lookahead or backtracking strategy -- Marpa
does not use lookahead and never backtracks.
with the traditional theoretical apparatus of
proofs based on prior literature.
is a major rewrite of the Marpa internals.
The most visible of these changes:
Marpa::R2 is faster.
Marpa::R2 is easier to install.
In particular the dependency on Glib has been removed.
Marpa::R2 now has no non-core CPAN dependencies.
Marpa::R2's internal symbols are now invisible
to the user, even when tracing and debugging.
Libmarpa, the C library which is at the core of Marpa,
is now documented
and separately installable.
(Libmarpa remains alpha at this point.)
Another new documented interface,
is a "thin" interface to Libmarpa from Perl.
(Marpa::R2::Thin remains alpha at this point.)
posted at: 17:16 |
direct link to this entry