Micro language implementation: Calcium Ned Batchelder released Calcium, a 300-line language implementation on GitHub that demonstrates how Python-like languages are tokenized, parsed, compiled into bytecodes, and executed, aiming to clarify why Python is both interpreted and compiled. A tiny language, to explain how programming languages are implemented. I wrote a tiny language implementation: Calcium https://github.com/nedbat/calcium . It’s meant as a demonstration of how languages like Python are implemented. It has a tokenizer, a parser, an AST, a compiler, bytecodes, and an execution engine, all in about 300 lines of code. I did it because I often see the question: isn’t Python interpreted? Why do people say it’s compiled? BTW, I also answered this in an earlier blog post: Is Python interpreted or compiled? Yes. //nedbatchelder.com/blog/201803/is python interpreted or compiled yes It can be hard to explain that your Python program never becomes an explicit sequence of native CPU instructions, which is what people often think “compiled” means. So I coded up Calcium https://github.com/nedbat/calcium to have on hand the next time it comes up. I think it will help to be able to show the execution engine code reading bytecodes and doing what they say. It could also be an interesting starting point for people wanting to play with a language implementation. It has almost nothing, so there’s lots of simple things comments? to add.