SOM: A minimal Smalltalk for teaching of and research on Virtual Machines

Minimal Smalltalk, maximal usefulness
SOM is a tiny Smalltalk dialect designed as a clean, minimal substrate for exploring virtual machine (VM) design and implementation. It deliberately keeps the language small so researchers and teachers can tinker under the hood without getting lost in language cruft. Why care? Because a simple, consistent target makes it easier to compare JIT strategies, garbage collectors, and concurrency models — and that comparison has driven real work in the wild.
A testbed for VM research
SOM has been a fertile platform for research, spawning multiple variants and papers on topics from tracing and partial evaluation to reflective execution environments and actor-based concurrency. It has been reported that in 2016 IBM’s J9 team used their JitBuilder to speed up SOM++ by roughly 3x–4x, and that the platform was cited during a JavaOne presentation on integrating garbage collection into heterogeneous runtimes. TruffleMATE, SOMNS (a Newspeak variant with actor support), and other experiments show the project’s role as a playground for VM ideas — sometimes a proving ground, sometimes a prototype that turns into something bigger.
Teaching, tooling, and community
Teaching material specific to SOM is light — expect slide decks, historical notes, and a bit of DIY if you’re planning a course — but the code is open and the community is reachable. Check the source on GitHub, follow @SOM_VMs on Twitter, join the som-dev mailing list, or request a Slack invite via the project’s Twitter account. It has been reported that Filip Říha implemented HaSOM in Haskell as part of a 2023 bachelor’s thesis, and that James Noble’s group used SOMNS as the basis for a Grace implementation that evolved into the Moth VM.
Papers and impact
The project’s website lists an incomplete but substantial bibliography: papers on deterministic record-and-replay for actors, metaobject protocols for run-time variability, collection-library design for exploratory programming, and more. These publications are more than footnotes; they show how a compact teaching language can ripple into the broader VM and language-design community. Want to poke around? Clone the repo, read a paper, and break something — that’s how learning and research happen here.
Sources: som-st.github.io, Hacker News
Comments