A Software Engineering Space

Interpreters & Compilers

mgclisp REPL

One of my main areas of interest in computer science is the development of programming languages, including their interpretation and compilation. While I am far from being an expert on the subject, I have dedicated a great amount of time and resources to learning what I can on the subject including amassing a personal library of reference material.

I have collected here some of those resources, as well as some of my own efforts at programming language development.

My Projects

OWLang – OWLang is the “One Weekend Language”. A Project I am developing with the intention of expanding it to a book about basic compiler implementation. It is simple enough for someone who is familiar with programming (but not necessarily compilers) to complete over a (perhaps long) weekend, yet feature-full enough to be worth doing: It’s NOT just another RPN calculator. Inspired by other “toy” languages such as PL/0 Niklaus Wirths and Kenneth Loudens’ TINY language.

MGCBasic – A derivative of the BASIC programming language, inspired by my experiences using Tiny BASIC on a TRS-80 and QBasic 4.5 growing up. The syntax shares similarities with Tiny BASIC.

MGCLisp – an S-expression interpreter I developed to learn more about both the Lisp programming language and writing interpreters as well as apply some of the lessons learned while developing MGCBasic.

MGCsm – a simple stack machine developed in the course of writing several posts on Virtual Machines and Compilers.