2006-11-01
Writing a Lisp Interpreter in Haskell
A neat article that appeared on reddit just recently: Writing a Lisp Interpreter in Haskell. It's interesting to compare the approach to my recent post on writing interpreters in Factor and my parser combinator article for the s-expression parser.
Apart from the fact that Haskell is a typed language, the approaches are quite similar. No surprise there since I based the Factor parser combinators library on an article in the Clean book (Clean being similar to Haskell) and the parsing approach to the way definitional interpreters are created in ML (another functional language).
Currently I'm reading John Reynolds paper "Definitional Interpreters in Higher-Order Programming Languages" and am implementing the various examples interpreters in Factor. It's a very interesting paper, hard to believe it was written in the 70's. I need to spend some time digging through more ACM papers!