Demo language for a course I'm working on about how programming languages work

Hey, everyone! I’ve built a small (but relatively fully-featured) interpreter for a Lisp-like language I intend to demo and then rebuild on camera in a course I’m (slowly but surely) working on about understanding how programming languages work and how to build them.

Unlike most Lisps, it does actually use dot notation for objects, which I did to make it easier for the interpreter to interact with JavaScript libraries.

I wrote it in JavaScript because it seems likely to me that a lot of my target audience will already be familiar with it, whereas they might not have any experience with lower level languages like C++ or Rust (the latter of which would have been my choice if all else was equal).

You can find the code and documentation here. I’m sure there are still a million bugs left to iron out, but I think it’s a decent effort overall.

The language is called “Daniel” both after my son and as an homage to Daniel P. Friedman.

Let me know if you have any thoughts!


1 Like