Results 1 -
6 of
6
Structurally Recursive Descent Parsing (Draft)
, 2008
"... Recursive descent parsing does not terminate for left recursive grammars. We turn recursive descent parsing into structurally recursive descent parsing, acceptable by total dependently typed languages like Agda, by using the type system to rule out left recursion. The resulting library retains much ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
Recursive descent parsing does not terminate for left recursive grammars. We turn recursive descent parsing into structurally recursive descent parsing, acceptable by total dependently typed languages like Agda, by using the type system to rule out left recursion. The resulting library retains much of the flavour of ordinary “list of successes ” combinator parsers. In particular, the type indices used to rule out left recursion can in many cases be inferred automatically, so that
Mixing Induction and Coinduction
, 2009
"... Purely inductive definitions give rise to tree-shaped values where all branches have finite depth, and purely coinductive definitions give rise to values where all branches are potentially infinite. If this is too restrictive, then an alternative is to use mixed induction and coinduction. This techn ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
Purely inductive definitions give rise to tree-shaped values where all branches have finite depth, and purely coinductive definitions give rise to values where all branches are potentially infinite. If this is too restrictive, then an alternative is to use mixed induction and coinduction. This technique appears to be fairly unknown. The aim of this paper is to make the technique more widely known, and to present several new applications of it, including a parser combinator library which guarantees termination of parsing, and a method for combining coinductively defined inference systems with rules like transitivity. The developments presented in the paper have been formalised and checked in Agda, a dependently typed programming language and proof assistant.
Structurally Recursive Descent Parsing
, 2008
"... Recursive descent parsing does not terminate for left recursive grammars. We turn recursive descent parsing into structurally recursive descent parsing, acceptable by total dependently typed languages like Agda, by using the type system to rule out left recursion. The resulting library retains much ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
Recursive descent parsing does not terminate for left recursive grammars. We turn recursive descent parsing into structurally recursive descent parsing, acceptable by total dependently typed languages like Agda, by using the type system to rule out left recursion. The resulting library retains much of the flavour of ordinary “list of successes ” combinator parsers. In particular, the type indices used to rule out left recursion can in many cases be inferred automatically, so that
Total Parser Combinators
, 2009
"... 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 that of many other parser combinator libraries, with two important differences: one is that the interface clearly specif ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
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 that 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 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
Speaking for the Trees: a New (Old) Approach to Languages and Syntax
, 2010
"... The final copy of this thesis has been examined by the signatories, and we find that both the content and the form meet acceptable presentation standards of scholarly work in the above mentioned discipline. iii Prescott, Moss (M.S., Computer Science) ..."
Abstract
- Add to MetaCart
The final copy of this thesis has been examined by the signatories, and we find that both the content and the form meet acceptable presentation standards of scholarly work in the above mentioned discipline. iii Prescott, Moss (M.S., Computer Science)
Explicitly Recursive Grammar Combinators -- The Implementation of some Grammar Algorithms
, 2010
"... In a companion paper, we have presented an alternative representation of grammars in Haskell, explicitizing the grammar’s recursion, decoupling the grammar from its semantic actions and making semantic actions independent of matching order. In this technical report, we present the implementation of ..."
Abstract
- Add to MetaCart
In a companion paper, we have presented an alternative representation of grammars in Haskell, explicitizing the grammar’s recursion, decoupling the grammar from its semantic actions and making semantic actions independent of matching order. In this technical report, we present the implementation of some interesting grammar algorithms in order to provide evidence for the increased power and declarative style of our novel grammar representation. The presented code is a simplification of parts of our freely available Haskell library grammar-combinators.

