[Haskell-cafe] Re: [Haskell] Compiler Construction course using
Haskell?
Chris Eidhof
chris at eidhof.nl
Wed Aug 20 13:58:34 EDT 2008
>> I plan to give a course in compiler construction,
>> using Haskell as the implementation language
>> (not as source or target language).
>>
>> Something along these lines:
>> 1. combinator parsers (Parsec),
>> 2. simple interpreter (arithmetical expressions)
>> 3. add algebraic data types, functions
>> 4. type checker
>> 5. code generator.
>> Ideally, 2..5 would be using the very same tree traversal code
>> and just change the monad for evaluation.
>>
>> Any comments appreciated. Have you given such a course? Taken?
At Utrecht University, they teach excellent courses on exactly this
subject, using Haskell. The course webpage [1] is probably a useful
resource for you, as it shows exactly what we were thought (I
participated in the course last year). We made heavy use of Utrecht's
Attribute Grammar Compiler [2], which is a pre-processor for Haskell
that allows you to very easily build programs using an attribute
grammar. This proved to be a really nice way to do the tree
transformations. I very much liked the idea of attribute grammars, but
I personally don't like pre-processors very much.
Also, we targeted Simple Stack Machine as a platform. This is an
assembly-like language that has a graphical interpreter, so you can
actually see your code, do single-stepping, see your stack, etc. It
proved to be quite useful. As a student, I it added a lot of
educational value, but a real language would also be cool (e.g. Harpy
[4]).
HTH,
-chris
[1]: http://www.cs.uu.nl/docs/vakken/ipt/
[2]: http://hackage.haskell.org/cgi-bin/hackage-scripts/package/uuagc
[3]: http://people.cs.uu.nl/atze/SSM/index.html
[4]: http://uebb.cs.tu-berlin.de/harpy/
More information about the Haskell-Cafe
mailing list