My friends at Norfolk Developers were kind enough to host/indulge me in giving another talk. This session covers how programming language interpreters and compilers go about turning the code we’ve written into some action the computer takes.
Cell is a deliberately small language, which can be implemented in pretty tiny amount of code. It’s not so small as to be without interest though, and you can do proper programmey things with it. The bank account sample code, for instance, is quite astonishingly dense involving calling a function that defines a function which is then immediately evaluated to return another function which manipulates variables captured in the local scope. Amazing stuff. The Cell library’s pairs and lists are also remarkable pieces of work, building out Lisp style arbitrary data structures from the smallest building blocks.
It’s a fun little project to work on, and I hope I did it at least some justice in my talk.
How to write a programming language - the talk Andy wrote Cell to illustrate.
Want something chunkier? Crafting Interpreters is an impressively thorough treatment of the topic.
Journey Into Space: How I read an article by one of the original signatories of the manifesto for agile software development, and accidentally ended up writing a version of Asteroids for my phone - the previous NorDev talk I referenced right at the start of this one.