The Implementation of Functional Programming Languages by Simon Peyton Jones [pdf]
drop.io
drop.io
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...
it's kind of getting annoying to see this kind of posting in hn..
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.]
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.