19 citations found. Retrieving documents...
G. Hutton, E. Meijer, Functional pearls. Monadic parsing in Haskell, Journal of Functional Programming 8 (4) (1998) 437-444.

 Home/Search   Document Details and Download   Summary   Related Articles   Check  

This paper is cited in the following contexts:
Calculation Carrying Programs - Hu, Takeichi (1999)   (Correct)

....in definition of semantics. E evaluates a meta expression, under an environment, to a list of values instead of a single one. This is due to many possible matches for a single matching. Using list here resembles the technique used to deal with nondeterminism in construction of the monadic parser [HM98]. t flattens a list of lists. ae 1 8 ae 2 , for extending environment ae 1 with ae 2 , is defined by (ae 1 8 ae 2 ) x = ae 2 x; x is defined in ae 2 = ae 1 x; otherwise: The main characteristics of E is that it binds local variables using matching. With this in mind, it should not be difficult ....

G. Hutton and E. Meijer. Monadic parsing in haskell. Journal of Functional Programming, 8(4):437--444, July 1998.


Final Shift for Call/cc: Direct Implementation of Shift and.. - Gasbichler, Sperber (2002)   (3 citations)  (Correct)

....(define (reflect meaning) shift k (extend k meaning) define (reify thunk) reset (eta (thunk) We have run applications using the parsing monad and the ambivalence monad. For benchmarking monadic parsing, we constructed a parser for arithmetic expressions similar to Hutton s [18] and applied it to a term with about 450 operators. The ambivalence monad and the test expressions we used are defined as: define (eta x) list x) define (extend f l) apply append (map f l) define syntax amb (syntax rules ( amb x . amb (lambda ( x) define (amb . t) ....

Graham Hutton and Erik Meijer. Monadic parsing in Haskell. Journal of Functional Programming, 8(4), 1998.


Packrat Parsing: a Practical Linear-Time Algorithm with Backtracking - Ford (2002)   (Correct)

....hierarchical structure will be seen in the next chapter, where structured fragments of code in one language are embedded as literals in another language. 3.2. 3 Monadic Packrat Parsing A popular method of constructing parsers in functional languages such as Haskell is using monadic combinators [11, 14]. Unfortunately, the monadic combinator approach usually comes with a performance penalty, and with packrat parsing this tradeo# presents a difficult choice. Implementing a packrat parser as described so far assumes that the set of nonterminals and their corresponding result types is known ....

Graham Hutton and Erik Meijer. Monadic parsing in Haskell. Journal of Functional Programming, 8(4):437--444, Jul 1998.


Packrat Parsing: Simple, Powerful, Lazy, Linear Time - Ford   (Correct)

....predicates require unlimited lookahead in general and cannot be implemented by conventional parsing algorithms without giving up their linear time guarantee. 3. 3 Monadic Packrat Parsing A popular method of constructing parsers in functional languages such as Haskell is using monadic combinators [11, 13]. Unfortunately, the monadic approach usually comes with a performance penalty, and with packrat parsing this tradeoff presents a difficult choice. Implementing a packrat parser as described so far assumes that the set of nonterminals and their corresponding result types is known statically, so ....

Graham Hutton and Erik Meijer. Monadic parsing in Haskell. Journal of Functional Programming, 8(4):437--444, Jul 1998.


Report on the Visit to Department of Computer Sciences, Yale.. - Wu (2000)   (Correct)

....is that side affects can be incorporated into a pure functional language by means of monads which are mathematical notions from category theory and represent computations. So I spent quite a long time at Yale to understand what monad is. Three articles that I studied during the time are [18][19][20] 4. Conclusion Three months stay at Yale is not a long time. The most immediate benefit of this visit is that our project has been strengthened because it let us know what other people are doing research in this area and also establish a research contact for future work. Yale is one of the ....

Graham Hutton and Erik Meijer, Monadic parsing in Haskell, Journal of Functional Programming, 8(4):437-444, Cambridge University Press, July 1998. http://www.cs.nott.ac.uk/~gmh//pearl.ps


A Formal Definition of Crosscuts - Douence, Motelet, Südholt (2001)   (31 citations)  (Correct)

....execution monitoring for security purposes. Hence, compilation techniques for merging monitors into monitored programs are an important research issue (see e.g. Colcombet and Fradet [2] Monadic parsing and postmortem trace analysis. Our DSL was strongly in uenced by monadic parser libraries [7]. Indeed our pattern constructors are closely related to the monadic operators: our Return (resp. Abort, Par) corresponds to the monadic result (resp. zero, plus) and our pattern p1 Seq Bind p2 corresponds to the monadic expression p1 bind p2. The main di erence comes from our interaction ....

G. Hutton and E. Meijer. Monadic parsing in Haskell. Journal of Functional Programming, 8(4):437444, July 1998.


Take: A Distributed Testing Harness in Haskell (Application.. - Chakravarty   (Correct)

....on distributed systems, which exercises all extensions of Take over Give. The nal paper will include a report of the experience with Take in this setting. 5.2 Related Work EDSLs have achieved a certain popularity in the Haskell community. The applications go from combinator parser libraries [10] and hardware description languages [4] over modelling for interactive graphics and multimedia [7] and a robot control language [15] to a modelling language for nancial contracts [16] EDSLs are a natural continuation of combinator libraries and are a good example of how higher order functions ....

Hutton, G. and E. Meijer, Monadic parsing in Haskell, Journal of Functional Programming 8 (1998), pp. 437-444. 16 Chakravarty


Monads and Effects (revised) - Benton, Hughes, Moggi (2000)   (1 citation)  (Correct)

....would be a little less close: real parsers for arithmetic expressions are left recursive, use a lexical analyser, and are written to avoid expensive backtracking. On the other hand, real parsing libraries provide more combinators to handle these features and make parsers even more succinct See [HM98] for a good description. 6 Notice how important Haskell s lazy evaluation is here: without it, these recursive definitions would not make sense constructions are the combinators of the library [Hud98] With this view, this little parsing library defines a programming language with special ....

Graham Hutton and Erik Meijer. Monadic parsing in haskell. Journal of Functional Programming, 8(4):437--444, July 1998.


Lazy Lexing is Fast - Chakravarty (1999)   (3 citations)  (Correct)

....from a set of combinators provided by a scanner or parser combinator library. Both approaches have their advantages and were pursued in the past. There are a couple of generators (e.g. 8,2,5] for widely used languages, such as Haskell and SML, as well as a number of combinator libraries (e.g. [3,4]) Usually, generators produce more efficient scanners and parsers by implementing table driven analysers [1] but this is, in the case of parsers, at the expense of expressiveness, as generators usually confine the specification to a restricted class of languages, such as, LALR(1) Furthermore, ....

Graham Hutton and Erik Meijer. Monadic parsing in Haskell. Journal of Functional Programming, 8(4):437--444, 1998.


Calculation Carrying Programs - How to Code Program.. - Takeichi, Hu (2000)   (Correct)

....in definition of semantics. E evaluates a meta expression, under an environment, to a list of values instead of a single one. This is due to many possible matches for a single matching. Using list here resembles the technique used to deal with nondeterminism in construction of the monadic parser [24]. t flattens a list of lists, unnest is to decode nested encodings, and introLet ae e is to construct code by expanding environment using let as seen the discussion of encoding in Section 3.2. ae 1 8 ae 2 , for extending environment ae 1 with ae 2 , is defined by (ae 1 8 ae 2 ) x = ae 2 x; x is ....

G. Hutton and E. Meijer. Monadic parsing in haskell. Journal of Functional Programming, 8(4):437--444, July 1998.


Monads and Effects - Benton, Hughes, Moggi (2000)   (1 citation)  (Correct)

....would be a little less close: real parsers for arithmetic expressions are left recursive, use a lexical analyser, and are written to avoid expensive backtracking. On the other hand, real parsing libraries provide more combinators to handle these features and make parsers even more succinct See [HM98] for a good description. 6 Notice how important Haskell s lazy evaluation is here: without it, these recursive definitions would not make sense 34 Moreover, according to the definition of a monad transformer above, there should also be a monad morphism from m to MaybeT m that is, it ....

Graham Hutton and Erik Meijer. Monadic parsing in haskell. Journal of Functional Programming, 8(4):437--444, July 1998.


Abstraction and Performance from Explicit Monadic.. - Sobel, Hilsdale, Dybvig, ..   (Correct)

....explore the efficiency improvements such a foundation allows us. Finally, we point toward how the parsing example we use may be generalized. Most of the presentation in the following section is not new. Using monads for parsing has been discussed in detail by Wadler [14] Hutton [5] and Meijer [6, 7], and Bird [1] In a change from these presentations, however, the programs in this paper are written in the strict language Scheme and include uses of the recently standardized syntactic extension mechanism (macros) We paraphrase the material from these other texts in order to familarize the ....

Graham Hutton and Erik Meijer. Monadic parsing in Haskell. Journal of Functional Programming, 8(4):437-- 444, July 1998.


Haskell and XML: Generic Combinators or Type-Based Translation? - Wallace, Runciman (1999)   (61 citations)  (Correct)

....automatically produce XML that is valid in respect of a specified DTD. Both approaches rely on a toolkit of more basic components for processing XML documents in Haskell: for instance, a parser and pretty printer. These supporting components are implemented using existing combinator libraries [7, 8]. 1.4 Sections following x2 develops the approach using a generic representation and a combinator library, including an illustrative application. x3 develops the alternative based on translation between DTDs and Haskell data types. x4 discusses some pros and cons of the two approaches based on ....

Graham Hutton and Erik Meijer. Monadic parsing in Haskell. Journal of Functional Programming, 8(4), July 1998.


A Notation for Arrow-based Libraries - Paterson (2001)   (Correct)

....of arrow types that do not arise from monads. 6 Ross Paterson 3.1 Static Information An important kind of computation that does not t in the monad setting is where some component is static, i.e. independent of the input. A neat example of a monad is provided by recursive descent parsers [7]. One can write a set of mutually recursive computations that closely mirror the original grammar, subject to the usual limitations of top down parsing. However such monadic parsers are typically designed to backtrack on error, which is both inecient and makes useful error reporting very dicult. ....

.... stmt : Parser SymTable Stmt stmt = t : hjsymbol Whileji bind cond t bind c hjsymbol Doji bind stmt t bind s unit WhileStmt c s) As advertised, the form of this program is very similar to what we would write with monadic parser combinators [7], but works for a wider class of parsers, including the optimized ones of Swierstra and Duponcheel [18] We can also de ne the resettable counter from Sect. 3.2 in the new notation: counter : ArrowCircuit a ) a Bool Int counter = reset x ( out (delay 0) out 1) bind next ....

Graham Hutton and Erik Meijer. Monadic parsing in Haskell. Journal of Functional Programming, 8(4):437-444, 1998.


Calculation Carrying Programs - Hu, Takeichi (1999)   (Correct)

....in definition of semantics. E evaluates a meta expression, under an environment, to a list of values instead of a single one. This is due to many possible matches for a single matching. Using list here resembles the technique used to deal with nondeterminism in construction of the monadic parser [HM98]. t flattens a list of lists. ae 1 8 ae 2 , for extending environment ae 1 with ae 2 , is defined by (ae 1 8 ae 2 ) x = ae 2 x; x is defined in ae 2 = ae 1 x; otherwise: The main characteristics of E is that it binds local variables using matching. With this in mind, it should not be difficult to ....

G. Hutton and E. Meijer. Monadic parsing in haskell. Journal of Functional Programming, 8(4):437--444, July 1998.


A Declarative Approach to the Development of Dynamic Programming .. - Giegerich (1998)   (Correct)

....notational amendments) will prove to be an efficient yield parser. 3.2 Yield parsers and their combinators Definition 6 The yield parsing problem for a tree grammar G is the following: Given a string y of terminal symbols, find all trees t 2 L(G) such that yield(t) y. 2 Combinator parsing [18, 19] is an elegant technique which directly turns a context free grammar into a nondeterministic, top down parser. We adjust this technique to the yield parsing problem. We need to impose one restriction on G: A grammar is well formed, if there is no circular chain of productions that does not ....

Graham Hutton and Erik Meijer. Monadic parsing in haskell. JFP, 8(4), 1998.


Rapid Prototyping of Specification Language Implementations - Leucker, Noll (1998)   (Correct)

....formalism. The second one is kept in memory as a transient object. It is needed for parsing the semantic part of the definition where both the rewrite rules and the equations employ the syntax of the specification language. Both parsers are implemented using the parser combinator library ([24]) and the extensions for operator precedences and automatic elimination of left linear rules proposed in [25] Using the transient parser, the semantic rules and equations of the definition are parsed. Instead of generating code for rewriting according to the given rules, we employ ELAN ( 26] ....

Graham Hutton and Erik Meijer, "Monadic parsing in haskell," Journal of Functional Programming, vol. 8, no. 4, 1998.


Functional Programming Concepts and Straight-line.. - Bruno, Heintz.. (2003)   (Correct)

No context found.

G. Hutton, E. Meijer, Functional pearls. Monadic parsing in Haskell, Journal of Functional Programming 8 (4) (1998) 437-444.


Parameterized LR Parsing - Thiemann, Neubauer (2004)   (Correct)

No context found.

G. Hutton and E. Meijer. Monadic parsing in Haskell. Journal of Functional Programming, 8(4), 1998.

Online articles have much greater impact   More about CiteSeer.IST   Add search form to your site   Submit documents   Feedback  

CiteSeer.IST - Copyright Penn State and NEC