How to replace failure by a list of successes
Proc. of a conference on Functional programming languages and computer architecture
Memoization in top-down parsing
Computational Linguistics
An efficient context-free parsing algorithm
Communications of the ACM
The augmented predictive analyzer for context-free languages—its relative efficiency
Communications of the ACM
Efficient Parsing for Natural Language: A Fast Algorithm for Practical Systems
Efficient Parsing for Natural Language: A Fast Algorithm for Practical Systems
The theory of parsing, translation, and compiling
The theory of parsing, translation, and compiling
Packrat parsing:: simple, powerful, lazy, linear time, functional pearl
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
Techniques for automatic memoization with applications to context-free parsing
Computational Linguistics
Realization of natural language interfaces using lazy functional programming
ACM Computing Surveys (CSUR)
Modular and efficient top-down parsing for ambiguous left-recursive grammars
IWPT '07 Proceedings of the 10th International Conference on Parsing Technologies
Executable Specifications of Fully General Attribute Grammars with Ambiguity and Left-Recursion
Canadian AI '09 Proceedings of the 22nd Canadian Conference on Artificial Intelligence: Advances in Artificial Intelligence
The next 700 data description languages
Journal of the ACM (JACM)
Proceedings of the 15th ACM SIGPLAN international conference on Functional programming
Lazy combinators for executable specifications of general attribute grammars
PADL'10 Proceedings of the 12th international conference on Practical Aspects of Declarative Languages
Simple, functional, sound and complete parsing for all context-free grammars
CPP'11 Proceedings of the First international conference on Certified Programs and Proofs
Modular natural language processing using declarative attribute grammars
MICAI'11 Proceedings of the 10th Mexican international conference on Advances in Artificial Intelligence - Volume Part I
Proceedings of the 34th International Conference on Software Engineering
The Semantics of Parsing with Semantic Actions
LICS '12 Proceedings of the 2012 27th Annual IEEE/ACM Symposium on Logic in Computer Science
SFM'12 Proceedings of the 12th international conference on Formal Methods for the Design of Computer, Communication, and Software Systems: formal methods for model-driven engineering
Left recursion in parsing expression grammars
SBLP'12 Proceedings of the 16th Brazilian conference on Programming Languages
Fixing idioms: a recursion primitive for applicative DSLs
PEPM '13 Proceedings of the ACM SIGPLAN 2013 workshop on Partial evaluation and program manipulation
FliPpr: a prettier invertible printing system
ESOP'13 Proceedings of the 22nd European conference on Programming Languages and Systems
Hi-index | 0.00 |
Parser combinators are higher-order functions used to build parsers as executable specifications of grammars. Some existing implementations are only able to handle limited ambiguity, some have exponential time and/or space complexity for ambiguous input, most cannot accommodate left-recursive grammars. This paper describes combinators, implemented in Haskell, which overcome all of these limitations.