--- title: Reading List --- Reading List ============ Building virtual machines in general and programming language implementations in particular requires some knowledge. Rubinius' goal is to lower the barrier by keeping as much as possible in Ruby but to hack on garbage collector you have to understand what' going on behind the curtains. This page contains references to books, online lectures, blog posts and any other publications you may find useful for working on Rubinius. NOTE that some of these links refer to outdated information about Rubinius. Virtual machine --------------- * [Smalltalk-80: language and its implementation](http://tinyurl.com/3a2pdq) by Goldberg, Robson, Harrison (aka "The Blue Book"), implementation chapters from part IV are [available online](http://tinyurl.com/6zlsd) * [Virtual machines](http://tinyurl.com/3ydkqg) by Iain D. Craig * Great posts by Adam Gardiner: [introduction](http://tinyurl.com/35y2jh), [How send sites work](http://tinyurl.com/34c6e8) Garbage collection ------------------ * [Garbage Collection: Algorithms for Automatic Dynamic Memory Management](http://tinyurl.com/3dygmo) by Richard Jones * [Garbage collection lectures](http://tinyurl.com/2mhek4) Primitive methods ----------------- * [Ruby extensions and Smalltalk primitives](http://talklikeaduck.denhaven2.com/articles/2007/06/04/ruby-extensions-vs-smalltalk-primitives) * [Guide to Squeak primitives](http://www.fit.vutbr.cz/study/courses/OMP/public/software/sqcdrom2/Tutorials/SqOnlineBook_(SOB)/englisch/sqk/sqk00083.htm) FFI --- * [Implementing File#link using FFI](http://redartisan.com/2007/10/11/rubinius-coding) * [Rubinius' foreign function interface](http://blog.segment7.net/articles/2008/01/15/rubinius-foreign-function-interface)