Programming languages are to programmers what saws are to carpenters. It is one of our most important tools among many we need, but there are still many different types of saws needed that vary enormously across different applications. This analogy fits perfectly with programming languages and the variety that we have developed since the 1940’s. I’ve recently been thinking about how languages are interpreted to machine code now-days as well as other language concepts, and learned quite a bit through my coreBasic project.
Sure, developing a new programming language is as unnecessary as developing a new OS, but it is still a healthy academic exercise. There are even tools out there that allow you to define a programming language syntax, and let the interpreter do all the work, but I think it’s much more fun to write all that yourself! Let us go through the several layers and ways in which we can interpret a programming language ranging from binary to compiled to interpreted languages. Naturally you could learn much more through the Wikipedia articles on each topic, but again it’s fun to casually walk through and explain each type.
Continue reading for more!