[Haskell-cafe] ANN: The Disciplined Disciple Compiler - alpha 1
Ben Lippmeier
Ben.Lippmeier at anu.edu.au
Thu Mar 20 19:34:59 EDT 2008
Hi Tim,
DDC doesn't aim for Haskell 98 compliance - its really a superset of a
subset of it - but I've followed Haskell syntax and philosophy where
ever possible. The compiler is written in Haskell and I want DDC to
support as much of it as possible to make its eventual boot-strapping
easier. There's much more common ground between Disciple and Haskell
than say, ML and O'Caml, or Haskell and Clean.
Most of the expression syntax is there eg: function binding, lambdas,
let, where, pattern matching, case expressions, pattern guards, data
type definitions, class and instance definitions etc etc.
For the alpha version at least, the main deviations are:
- dictionary passing is not finished.
- you'll need to put region annots on recursive data type defs as
the elaboration isn't quite finished.
- it uses strict evaluation as default
- field projections are different
- no monadic desugaring in do notation.
- no irrefutable patterns yet.
The rest is all Haskell 98 (minus all the effect typing extensions, of
course!).
For the alpha2 release I'm hoping that most straight-up Haskell 98
programs will compile with it after some cosmetic modifications:
mostly adding the suspension operator where appropriate, and using the
new field projection syntax.
Ben.
> Can you elaborate on "a significant number of Haskell programs"? Do
> you expect that DDC can compile any Haskell (98?) program except some
> weird corner cases, or are you aware of a particular class of Haskell
> programs it currently can't compile?
>
> (I'm asking in order to find out whether DDC would potentially be
> useful for my work, not so as to question whether it should be on
> haskell.org (I don't care about that :-))
>
> Cheers,
> Tim
>
> --
> Tim Chevalier * http://cs.pdx.edu/~tjc * Often in error, never in
> doubt
> "It's easy to consider women more emotional than men when you don't
> consider rage to be an emotion." -- Brenda Fine
More information about the Haskell-Cafe
mailing list