

The Implementation of Functional Programming Languages by Simon Peyton Jones [pdf] - fogus
http://drop.io/IoFPLbySPJ

======
Maro
A scribd thing embedded in a drop.io thing? This is the most idiotic link I've
ever clicked on HN.

The actual page on Simon Peyton Jones' website where you can read it online or
download it:

[http://research.microsoft.com/en-
us/um/people/simonpj/papers...](http://research.microsoft.com/en-
us/um/people/simonpj/papers/slpj-book-1987/)

------
halo
I'm not sure why a link to drop.io is used, when you can read online or
download this book for free from Simon Peyton Jones' site
([http://research.microsoft.com/en-
us/um/people/simonpj/papers...](http://research.microsoft.com/en-
us/um/people/simonpj/papers/slpj-book-1987/)).

~~~
fogus
One reason is that drop.io provides an inline viewer also. -m

~~~
ankhmoop
My browser provides an inline PDF viewer (no Acrobat required).

------
eru
Nice book. I submitted it before, too.

------
ttam
oh comon.. this does not fall under news, and anyone actively interested in
the subject would find the book with a quick google search

it's kind of getting annoying to see this kind of posting in hn..

~~~
mahmud
Not to mention that SPJ's papers require extensive Haskell experience and
familiarity with the combinator side of functional programming and not just
lambda calculus. It took me weeks just to go through his Spineless Tagless
G-Machine paper.

FWIW, I find Andrew Appel's papers slightly easier; Appel is an MLer, meaning
he treats strict evaluation much more comprehensively, which appeals to this
lisper. Plus Appel is a compiler hacker, not just a functional PL researcher.

[Edit: Ok I will admit, I am bitter and mad at the graph reductionists because
I never fully grokked term-rewriting; that fucker is hard, even after months
studying advanced abstract algebras and category theory. Now I'm off to go
shopping with Barbie.]

~~~
Oxryly
Do you have a link/title for any of Appel's better papers?

~~~
ambulatorybird
I'm not the person you replied to, but I personally liked "A Standard ML
Compiler" and "A Runtime System"; they are among his earlier writings and
relatively basic. You can find them at:

<http://www.cs.princeton.edu/~appel/papers/>

~~~
mahmud
I am the person Oxryly replied to and I agree with your recommendation.

Also at that link are: "SSA is Functional Programming"; a timeless classic.

"Real-time Concurrent Collection" is about a realtime, copying GC algorithm
that requires no hardware support and no changes to the compiler.

"Efficient Closure Representation". Back in the old dark ages, closures where
stored in the heap and their environment links where two full pointers.
Continuation passing style was discovered, complicating things further now,
then someone came along and figured out you could break that previous closure
representation in half by representing only half of the "rib cage". Another
clever fella came along and found a way to store closures on the stack, which
was super fast, except they weren't really in the stack but only pointers to
them where, i.e. spaghetti stack, and it got annoying super fast. Solutions
where found, and problems where found in those solutions .. then came along
Appel and Shao and showed you could store closure in _REGISTERS_. (before you
read this however you will need to read Dybvig's "Three Implementation Models
of Scheme", and go depth first into all the literature it references, also try
to find Appel's book "Compiling with Continuations.")

"Run Time Tags Aren't Necessary" was another favorite of mine as well. Before
you touch this read the Wilson bibliography/survey on Garbage Collection.

The great majority of his papers are compiler hacks for functional languages.
Skip them for now and work through Cooper and Torczon's "Engineering a
Compiler"; the Algols are far easier to play with until you know better.

Regards.

