We survey basic garbage collection algorithms, and variations such as incremental and generational collection; we then discuss low-level implementation considerations and relationships between storage management systems, languages, and compilers. Throughout, we attempt to present a unified view based on abstract traversal strategies, addressing issues of conservatism, opportunism, and immediacy of reclamation; we also point out a variety of implemetation details that are likely to have significant impact on the performance.
A very extensive (~70 pages) survey paper.
Covers most common GC issues, and contains a section about GC-related language features. Doesn't cover functional programming languages specifically, but touches on many of the important issues. (I was looking for a discussion of closure and continuation allocation, and these are not covered here. I'll post references to papers discussing this issue later on).
Even if you don't have the time to read all of this, I recommend reading the beginning which discusses the pros and cons of GC as compared to manual memory handling.
Also check out the large paper archive.
Posted to implementation by Ehud Lamm on 4/30/01; 8:34:05 AM