The Implementation of Functional Programming Languages by Simon Peyton Jones can be downloaded in pdf format or you can read it online. This book is about implementations, not languages, it will make no attempt to extol the virtues of functional languages or the functional programming style.
Instead this book will assume that the reader is familiar with functional programming; those without this familiarity may find it heavy going. The first part describes how to translate a high-level functional language into an intermediate language, called the 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 supercombinators, 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 over the implementations described earlier.
Table of Contents
File size: 40.50 MB
Number of pages: 500
Link: Download or read online.