Doaitse Swierstra wrote:
Over the years we have been constructing a collection of Embedded
Domain Specific Languages for describing compilers which are
assembled from fragments which can be compiled individually. In this
way one can gradually ``grow a language'' in a large number of small
steps. The technique replaces things like macro extensions or
Template Haskell; it has become feasible to just extend the language
at hand by providing  extra modules. The nice thing is that existing
code does not have to be adapted, nor has to be available nor has to
be recompiled.

Recently we have been using (and adapting) the frameworks such that
we could create an entry in the ldta11 (http://ldta.info/tool.html)
tool challenge, where one has to show how one's tools can be used to
create a compiler for the Oberon0 language, which is used a a running
example in Wirth's compiler construction book.

We have uploaded our implementation to hackage at:
http://hackage.haskell.org/package/oberon0.

More information can be found at the wiki:
http://www.cs.uu.nl/wiki/bin/view/Center/CoCoCo

You may take a look at the various Gram modules to see how syntax is
being defined, and at the various Sem modules to see how we use our
first class attribute grammars to implement the static semantics
associated with the various tasks of the challenge.

We hope you like it, and comments are welcome,

Awesome!

I have a small question: Last I remember, you've mainly been using your UUAGC preprocessor to write attribute grammars in Haskell, especially for UHC. Now that you have first-class attribute grammars in Haskell ("achievement unlocked"), what do you intend to do with the preprocessor? How do these two approaches compare at the moment and where would you like to take them?


Best regards,
Heinrich Apfelmus

--
http://apfelmus.nfshost.com


_______________________________________________
Haskell mailing list
Haskell@haskell.org
http://www.haskell.org/mailman/listinfo/haskell

Reply via email to