Freelance software grandad
software created
extended or repaired
Follow me on Mastodon
Applications, Libraries, Code
Talks & Presentations
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.
Originally I’d expected to give this talk to a JavaScript user group and consequently, while this isn’t a particularly code-heavy talk, wanted to give code examples in JavaScript. However, I didn’t want to use JavaScript as the example language that gets parsed out and evaluated. It would have been a load more work and the talk would have been more complicated for it. I could have gone with something Lisp-y, like a little Scheme implementation, but the all those brackets are sort of off-putting. I remembered a talk my friend Andy Balaam had given a few years ago, covering similar ground, for which he’d developed his own little language. I asked if I could use it in my session, and he willingly agreed.
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.
Freelance software grandad
software created
extended or repaired
Follow me on Mastodon
Applications, Libraries, Code
Talks & Presentations