Affiliation:
1. University of Nottingham, Nottingham, United Kingdom
Abstract
A monadic parser combinator library which guarantees termination of parsing, while still allowing many forms of left recursion, is described. The library's interface is similar to those of many other parser combinator libraries, with two important differences: one is that the interface clearly specifies which parts of the constructed parsers may be infinite, and which parts have to be finite, using dependent types and a combination of induction and coinduction; and the other is that the parser type is unusually informative.
The library comes with a formal semantics, using which it is proved that the parser combinators are as expressive as possible. The implementation is supported by a machine-checked correctness proof.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Reference47 articles.
1. }}The Agda Team. The Agda Wiki. Available at http://wiki.portal.chalmers.se/agda/ 2010. }}The Agda Team. The Agda Wiki. Available at http://wiki.portal.chalmers.se/agda/ 2010.
2. }}Thorsten Altenkirch and Nils Anders Danielsson. Termination checking in the presence of nested inductive and coinductive types. Note supporting presentation given at the Workshop on Partiality and Recursion in Interactive Theorem Provers Edinburgh UK 2010. }}Thorsten Altenkirch and Nils Anders Danielsson. Termination checking in the presence of nested inductive and coinductive types. Note supporting presentation given at the Workshop on Partiality and Recursion in Interactive Theorem Provers Edinburgh UK 2010.
Cited by
16 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Design patterns for parser combinators (functional pearl);Proceedings of the 14th ACM SIGPLAN International Symposium on Haskell;2021-08-18
2. Algorithmics;IFIP Advances in Information and Communication Technology;2021
3. Combining predicate transformer semantics for effects: a case study in parsing regular languages;Electronic Proceedings in Theoretical Computer Science;2020-05-01
4. Derivative grammars: a symbolic approach to parsing with derivatives;Proceedings of the ACM on Programming Languages;2019-10-10
5. A new view on parser combinators;Proceedings of the 31st Symposium on Implementation and Application of Functional Languages;2019-09-25