SableVM is a portable bytecode interpreter written in C, and implementing the Java virtual machine specification, second edition. Its goals are to be reasonably small, fast and efficient, as well as providing a well designed and robust platform for conducting research. SableVM implements many innovative techniques, including: * 3 flavors of threaded interpretation (switched, threaded and inlined). * Bidirectional object layout. * Spinlock-free thin locks. * Sparse interface vtables. * Low-cost maps for precise garbage collection.