1 research outputs found
Relational parsing: a clean, fast parsing strategy for all context-free languages
We present a novel parsing algorithm for all context-free languages, based on
computing the relation between configurations and reaching transitions in a
recursive transition network. Parsing complexity w.r.t. input length matches
the state of the art: it is worst-case cubic, quadratic for unambiguous
grammars, and linear for LR-regular ones. What distinguishes our algorithm is
its clean mathematical formulation: parsing is expressed as a composition of
simple operations on languages and relations, and can therefore be implemented
using only immutable data structures. With a proper choice of these structures,
a vast majority of operations performed during parsing typical programming
languages can be memoized, which allows our proof-of-concept implementation to
outperform common generalized parsing algorithms, in some cases by orders of
magnitude.Comment: manuscript: please do not cite without permission; 32 pages +
reference