Splink!

July 15th 2020

the code

pre-built binary

Back before the Handmade Network started doing the yearly Wheel Reinvention Jam they put on the Lisp Jam. It was the same year that I was first diving into non-textual programming. So I decided to use the jam as a chance to explore what a programming system would look like with just a small touch of non-textual structure. Splink! was the result.

The underlying language is a Lisp variant that I hand rolled after reading some other small Lisps like minilisp and tiny-lisp. The code is organized inside of .splink files which are not text files. Instead a .splink file contains a list of so-called "definitions". Each definition has an identifier string and a body string. Even just this much structure made it very easy to add features like error containment and slices to the programming system.

Splink! is not a particularly useful programming system. But it did further convince me that I should pay close attention to the data structure that stores code in a programming system, and how the choice of data structure can simplify or complicate problems related to programming tools.