[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  


[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