“The evaluator, which determines the meaning of expressions in a programming language, is just another program.”
—Hal Abelson and Gerald Sussman, Structure and Interpretation of Computer Programs
Building your own programming language is surprisingly easy (as long as you do not aim too high) and very enlightening.
The main thing I want to show in this chapter is that there is no magic involved in building your own language. I’ve often felt that some human inventions were so immensely clever and complicated that I’d never be able to understand them. But with a little reading and tinkering, such things often turn out to be quite mundane.
We will build a programming language called Egg. It will be a tiny, simple ...