I met Stephen Wolfram at CodeDay Boston Spring 2015, where he demonstrated the capabilities of the Wolfram Language. I quickly became interested in how to create a programming language. I think that the Wolfram Language is fascinating, and its applications seem boundless. However, I really, really wish that it was open source. Some pseudo-equivalents exist, like Sympy Gamma, but I wish there were a true equivalent to the language; one that functioned the same way, and had as many equivalent functions as possible. I do not mean to detract in any way from Sympy Gamma. It’s incredible what can be done with it, and I’m sure it will only become more incredible.
While there is very extensive information about many computer-related topics online, this is surprisingly untrue of language design. That’s not to say that there is no information/documentation about it, but it’s sparser than you’d expect. So, I thought that along my way to trying to understand how programming languages work, I’d write a little about it to make it easier for people who come after me.
As of writing this, I’m working through the Dragon Book (admittedly, I’m very close to the beginning). The Dragon Book has exercises at the end of many sections, the answers to which can be found at this GitHub repo (please do the exercises first!). While I was writing this post, I also came across this course from Brown University which I plan to take a look at.
This is simply an introductory post; future posts should contain substantially more real programming-related content. Stay tuned!
Disclaimer: I am not knowledgable about programming language design, compiler design, or anything else related to creating a programming language. I just think it’s interesting, and want to learn more about it.