Damian Walker

Personal Web Pages

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 should tackle something simpler as my first compiler projects and switching to Tiny BASIC for a while. But the project isn't abandoned: Tiny BASIC is just a learning exercise to make the journey to BOOPL that much easier.

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.

On this page I'll blog about my progress and thoughts on the project, and eventually provide downloads and documentation. BOOPL may become a big enough project in its own right to warrant its own web site, but that's a way off in the future.

How Many Years? An Update

1 Aug: The last time I wrote a blog entry on my compiler project must have been a few years ago. I've worked on it on and off over that time. I decided on a name (BOOPL - Basic Object Orented Programming Language), prepared some documentation and with the help of the  Modern Compiler Design book, I wrote the tokeniser. Since then I also bought a very old but very cheap copy of the "Dragon Book",  Compilers: Principles, Techniques, and ... (read more...)

Program Syntax

24 Nov: I haven't yet settled on a name for my programming language, but I know what its programs will look like. I learned to program in BASIC, and I'm most comfortable with its syntax. Not the ancient form with line numbers and GOTO, but more the structured BASICs like QuickBASIC and OPL. The classic recursive factorial program will look something like this: REM -- recursive factorial function PROCEDURE factorial (n AS INTEGER) AS INTEGER IF n <= 1 RETURN n ... (read more...)