The Joy of Virtual Machines

Published on 21-10-2017

Return Home

The Joy of Virtual Machines

I’ve been reading Andrew Tenenbaum’s Modern Operating Systems recently and am thoroughly enjoying it. I’ve also been implementing an esolang called “Shapes”.

The idea of shapes was to create a syntax based on symmetry, and other geometric properties. But I’ve become sidetracked along the way.

Shapes was to use a primitive virtual machine as an interpreter for the language. I’ve been feeling such joy from writing this interpreter that I’m thinking of putting the language design to the side for a moment and focus on writing a very neat esolang virtual machine. I blame Tenenbaum for making me think of runtimes over grammar and functional transformations. But I cannot blame him for the silly path that I am taking now.

My goal is to:

Implement a multi-esolang interpreter called ShapesVM

And I’m going to do this in a particular way:

Most VMs are designed to be extensible: have a small core, and allow extra functionality to be implemented in either the source language or through extensions. ShapesVM will instead chuck a lot of functionality into the VM. This is because the source languages of the VM are not particularly expressive. For instance, it will be much nicer and more efficient to build container datastructures and algorithms into the VM than to implement them in say, brainfuck.

There are other projects with a similar aim, for instance, EsotericIDE is an IDE supporting several esoteric programming languages.

But this is pure recreation, and so in this case I feel no guilt in trodding a similar path.

Other entries:

16-06-2018 Gutenfinder

13-03-2018 The Many Bleeding Edges Of Self Sufficiency

13-03-2018 Start Of 2018

21-10-2017 The Joy of Virtual Machines

21-10-2017 The Kolmogorov Esolang

21-10-2017 Why I'm taking a break from Godless development

03-07-2016 Fat Ephemeralization

03-07-2016 Nathan Barley, meet Autocad.

08-03-2016 Appeal to Monads

29-02-2016 Godelbrot Region Render Algorithm