On Wed, 21 Dec 2005, Bernard Pope wrote: > On Tue, 2005-12-20 at 16:58 -0800, John Meacham wrote: > > On Tue, Dec 20, 2005 at 10:36:36AM -0600, Creighton Hogg wrote: > > > I was wondering where I should get started in learing about > > > how to implement a haskell compiler? > > Warning: a whole Haskell compiler is a LOT of work.
Oh I figured it would be, but I'm not really planning on implementing all of Haskell 98 by myself. > Nonetheless there are examples of mostly-single-person compilers and > interpreters out there, so it is possible to do one on your own. Though > I don't think reading their source code is necessarily the best way to > get started. > > I agree with what John said, especially this: > > > there are various other abstract machines out there, the Lazy Virtual > > Machine used by Helium described in Daan Leijen's Phd thesis is quite > > interesting, and might make a better first target than G-machine code. > > If you want to write a compiler, > targeting LVM is (I believe) the easiest way to get something working. > You could get the source code for hatchet from him to give you a front > end. > > Another approach is to write a simple interpreter for a small functional > language and add features in bit-by-bit, as your enthusiasm dictates. > That way, you get the satisfaction of having something work early on. If > you write a compiler it might take weeks or months before it does > anything interesting. Then you can custom build your language with > whatever features take your fancy. For instance you can add a better > record system, or play with meta-programming facilities. I started a > little project like this a while ago, called baskell, which you can get > from here: > > http://www.cs.mu.oz.au/~bjpop/code.html > > It has a rudimentary type checker, and a little REPL interface. Feel > free to hack it to pieces. I really like your idea of implementing an interpreter for just some kindof functional language. That sounds like it'd be pretty instructive and have less frustration factor than a whole compiler. Thanks! _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe