Re: Extensible grammars

"John Max Skaller" <>
17 Dec 2004 00:29:21 -0500

          From comp.compilers

Related articles
Extensible grammars (John Max Skaller) (2004-12-13)
Re: Extensible grammars (Claus Reinke) (2004-12-16)
Re: Extensible grammars (John Max Skaller) (2004-12-17)
Re: Extensible grammars (John Max Skaller) (2004-12-17)
Re: Extensible grammars (Ralf Laemmel) (2004-12-23)
| List of all articles for this month |

From: "John Max Skaller" <>
Newsgroups: comp.compilers
Date: 17 Dec 2004 00:29:21 -0500
Organization: Compilers Central
References: 04-12-058 04-12-070
Keywords: parse
Posted-Date: 17 Dec 2004 00:29:21 EST

On Thu, 16 Dec 2004 00:43:52 -0500, Claus Reinke wrote:

> Two-Level Types and Parameterized Modules. With Emir Pasalic.
> Expanded version of Generic Unification via Two-Level Types
> and Parameterized Modules, with new examples.
> JFP 14 (5):547-587, Sept. 2004

Great, that's spot on topic!

> The idea has been used in several projects he has been involved
> with. One project not mentioned in the paper is Programatica

> From what I've seen, the idea works, but there's a lot of clutter -
> for large sets of mutually recursive grammar rules, you need some
> way to hide the clutter.

That's my experience using polymorphic variants in Ocaml too.

> Essentially, you want the extra flexibility of open recursion and
> explicit knot-tying only when you extend the grammar, and you
> don't want to pay for that whenever you do any recursion over
> the grammar.

Yup: Open/Closed principle. It needs to be closed and ready to
use but open at the same time :)

>We're happily using Strafunski for that purpose
> which provides support for generic AST-traversals with
> reduction strategies. So when we need a bottom-up or top-down
> or whatever-until-some-condition traversal of the AST, we don't
> need to bother with the recursive structure of the 2-level AST -
> all the boilerplate code remains behind the scenes.

Thanks! [Guess I'll have to switch to Haskell one day .. so much
fun stuff for it .. :]

Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.