Optimal parallel parsing of bracket languages
Theoretical Computer Science
On the parallel recognition of ambiguous context-free languages
Theoretical Computer Science
Lazy dynamic-programming can be eager
Information Processing Letters
Algebra of programming
Efficient and flexible incremental parsing
ACM Transactions on Programming Languages and Systems (TOPLAS)
Introduction to algorithms
Efficient Parsing for Natural Language: A Fast Algorithm for Practical Systems
Efficient Parsing for Natural Language: A Fast Algorithm for Practical Systems
ICFP '03 Proceedings of the eighth ACM SIGPLAN international conference on Functional programming
Journal of Functional Programming
Programming languages and their compilers: Preliminary notes
Programming languages and their compilers: Preliminary notes
Yi: an editor in haskell for haskell
Proceedings of the first ACM SIGPLAN symposium on Haskell
Lazy functional incremental parsing
Proceedings of the 2nd ACM SIGPLAN symposium on Haskell
General context-free recognition in less than cubic time
Journal of Computer and System Sciences
Hi-index | 0.00 |
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(n3) in the worst case, it improves to O(logn3), under certain conditions satisfied by many useful inputs. These conditions occur for example in program texts written by humans. The improvement happens because the multiplications involve an overwhelming majority of empty matrices. This result is relevant to modern computing: divide-and-conquer algorithms can be parallelized relatively easily.