Implementation of FPL

Simon Peyton Jones book on the Implementation of Functional Programming Languages, circa 1987, is available online.

This book is about implementing functional programming languages using lazy graph reduction, and it divides itnto three parts.



The first part describes how to translate a high-level functional language into an intermediate language, called lambda calculus, including detailed coverage of pattern-matching and type checking. The second part begins with a simple implementation of the lambda calculus, based on graph reduction, and then develops a number of refinements and alternatives, such as super-combinators, full laziness and SK combinators. Finally, the third part describes the G-machine, a sophisticated implementation of graph reduction, which provides a dramatic increase in performance...

via the Haskell mailing lists. I've seen lots of references to this work, as it was one of the seminal works in the development of the Haskell programming language. But I can't find where it was directly discussed on LtU before.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

cafepress

Hey, that's cool the way they've reprinted these out-of-print books via CafePress. I wonder what the copyright issues are with doing this kind of thing. In particular I'd love to create inexpensive, nicely printed and bound versions of seminal papers that are hard to come by, like Plotkin 75 and 77.

Putting two and two together.

Now I remember the Discussion thread where the above paper was mentioned. CafePress is a great deal. Nice to see the paper online though for those of us who want to skim a few things here and there.

Cafepress?

This is a great book! But at Cafepress I only see Implementing Functional Languages: a tutorial, which isn't the same book.

It's coming

The Implementation of Functional Languages is coming to cafepress.

Copyright

I wonder what the copyright issues are with doing this kind of thing.

Same as always: you need the copyright holder's permission. Doesn't matter if it's out of print.