Damian Walker

Personal Web Pages

Compiler Design

I've recently got interested in building my own compiler, for fun. I hope to implement it under Linux and Windows, and I'll use this page to document my progress.

The aim of the language will be simplicity and elegance. The syntax is inspired by BASIC, but the simplicity of the core language is inspired by C. I'll be providing simple console I/O as part of the core language, just so that vaguely useful programs can be written without use of a library. Libraries, if I get around to them, will be modular like in Java.

The Tiny BASIC Interpreter and Compiler Project

In August 2019 I put aside my work on the BOOPL compiler to pick up something simpler, as BOOPL is a bit complicated for a first compiler project. Tiny BASIC is a much easier introduction to compiler and interpreter implementation. Designed in 1975 for the minimal hardware that hobbyists had at the time, it has only eight statements, integer arithmetic, no arrays, no string handling beyond PRINTing hard-coded messages, and 26 variables (A-Z). The first version of my ... (read more...)

The BOOPL Project

BOOPL is a programming language that I have designed around my own tastes. Having learned BASIC as my first programming language, I'm comfortable with its syntax, but not its limitations. I enjoyed using the more advanced BASICs such as Microsoft's QuickBASIC and Psion's OPL, and wanted to create a simple but elegant BASIC-like language of my own. Basic Object-Oriented Programming Language is the result. Implementation is in its early stages. I developed a tokeniser, before realising that I ... (read more...)