Efficient Parallel and Incremental Parsing
Journal article, 2015

We present a divide-and-conquer algorithm for parsing context-free languages efficiently. Our algorithm is an instance of Valiant's (1975), who reduced the problem of parsing to matrix multiplications. We show that, while the conquer step of Valiant's is O(n^3), it improves to O(\log^2 n) under certain conditions satisfied by many useful inputs that occur in practice, and if one uses a sparse representation of matrices. The improvement happens because the multiplications involve an overwhelming majority of empty matrices. This result is relevant to modern computing: divide-and-conquer algorithms with a polylogarithmic conquer step can be parallelised relatively easily.

Author

Jean-Philippe Bernardy

University of Gothenburg

Koen Lindström Claessen

Chalmers, Computer Science and Engineering (Chalmers), Software Technology (Chalmers)

Journal of Functional Programming

0956-7968 (ISSN) 1469-7653 (eISSN)

Areas of Advance

Information and Communication Technology

Subject Categories

Computer Science

More information

Latest update

7/19/2023