
Published in 1996, Richard Jones’s Garbage Collection was a milestone in the area of automatic memory management. The field has grown considerably since then, sparking a need for an updated look at the latest state-of-the-art developments. The Garbage Collection Handbook: The Art of Automatic Memory Management brings together a wealth of knowledge gathered by automatic memory management researchers and developers over the past fifty years. The authors compare the most important approaches and state-of-the-art techniques in a single, accessible framework. The book addresses new challenges to garbage collection made by recent advances in hardware and software. It explores the consequences of these changes for designers and implementers of high performance garbage collectors. Along with simple and traditional algorithms, the book covers parallel, incremental, concurrent, and real-time garbage collection. Algorithms and concepts are often described with pseudocode and illustrations. The nearly universal adoption of garbage collection by modern programming languages makes a thorough understanding of this topic essential for any programmer. This authoritative handbook gives expert insight on how different collectors work as well as the various issues currently facing garbage collectors. Armed with this knowledge, programmers can confidently select and configure the many choices of garbage collectors.
- Okasaki, Purely Functional Data Structures https://www.cs.cmu.edu/~rwh/students/okasaki.pdf
- The Garbage Collection Handbook https://gchandbook.org/
- The Dragon Book - https://faculty.sist.shanghaitech.edu.cn/faculty/songfu/cav/... (yes, it's old, but I still like the end-to-end, all-in-one intro)
- Windows Internals - https://learn.microsoft.com/en-us/sysinternals/resources/win...
- Structure and Interpretation of Computer Programs - https://web.mit.edu/6.001/6.037/sicp.pdf
- Concurrency Control and Recovery in Database Systems - https://www.microsoft.com/en-us/research/people/philbe/book/
- Crafting Interpreters - https://craftinginterpreters.com/
- What Every Programmer Needs to Know About Memory - https://people.freebsd.org/~lstewart/articles/cpumemory.pdf (the best thing Ulrich Drepper ever did)
- An Introduction to Modern Cryptography - https://eclass.uniwa.gr/modules/document/file.php/CSCYB105/R...
A good programming book gets better with age. If it's really about ideas and uses this or that technology for exposition, so much the better: the more remote in time the grammar of the examples, the more you can focus on the ideas. SICP being in Scheme is an advantage because you don't know Scheme yet; Windows Internals being about Windows teaches you generally good lessons in OS design by forcing you to contemplate a system alien to the Unix you probably know better.
It's shocking how many of these seminal books are available for free and how few people read them. Yes, yes, you can get the same information from an LLM, but an LLM won't give you the guided tour through the whole rugged ideas-space and show you a reasonable peak. Order, emphasis, and expository style build intuition, so books (especially old ones) are worth reading.
If you want to see my latest concurrent GC, see
https://github.com/pizlonator/llvm-project-deluge/blob/delug...
https://github.com/pizlonator/llvm-project-deluge/blob/delug...
Static Program Analysis[1] also seems helpful to someone trying to write a compiler that does optimizations that require advanced analyses: https://cs.au.dk/~amoeller/spa/
For garbage collection, there's the Garbage Collection handbook[2]. I'm not aware of better additional resources, though.
You can start here,
https://www.udemy.com/course/essentials-of-garbage-collector...
