↓ Skip to main content

My Projects

Personal projects I write and maintain in my own time, mostly old programming languages re-implemented from their original specifications rather than from later, drifted dialects.

GD-BASIC
#

A green-phosphor terminal screen displaying a line-numbered BASIC program

GD-BASIC is a Java 21 implementation of a Dartmouth-style BASIC interpreter, built directly on the original 1964 Dartmouth BASIC specification rather than the later GW-BASIC dialect most “BASIC” projects copy. It ships with an interactive line editor (LIST, RUN, LOAD, SAVE, DELETE, HELP), over 35 statements and 40 built-in functions, a strongly-typed six-variable-type system, and a full test suite of 1214 passing unit tests. The project is currently at version 0.2.0+ and marked production ready.

A reel of punched paper tape, unwinding into a strip of encoded program data

The GD-BASIC Blog carries the full write-up plus development notes and updates on the project as it evolves.

GD-FORTH
#

An amber-phosphor terminal screen displaying a Forth word definition and its use

GD-FORTH is a companion project applying the same approach to Forth: a Java 21 interpreter targeting the Forth-2012 standard word set, with an interactive line editor and script execution for .fs programs. It is much earlier in its life than GD-BASIC - a single “first check-in” commit at version 0.0.1, with the tokenizer’s reserved-word table already covering hundreds of standard words but only basic arithmetic, printing, and rudimentary word definition actually wired up to execute so far.

A stack of labelled data blocks illustrating a Forth-style LIFO data stack

The GD-FORTH Blog carries the full write-up plus development notes and updates on the project as it evolves.

MavenExtender
#

A row of Maven build-lifecycle phases with a shell command plugged into one of them

MavenExtender is a small Maven plugin that runs arbitrary shell commands as part of a Maven build, bound to whatever lifecycle phase you choose. It fills the gap between “too small to justify a real plugin” and “too easy to forget as a manual step” - things like copying artifacts, calling an external script, or printing a diagnostic during compile or package. It is also the first step towards Maven-based regression testing: see Maven Regression Test for the plugin being built on top of this same idea to drive a full regression suite from the build.

GD-MavenExtender is the full write-up, written for developers who are still getting comfortable with Maven - it includes a short refresher on lifecycle phases, plugins, and goals before walking through installation, configuration, and worked examples.

Work In Progress
#

Projects I have actively started but that are not yet far enough along - no first tagged version, no settled design - to earn their own headline section above. Rougher and more provisional than the finished write-ups, by nature.

The Work In Progress Blog carries progress notes on what is currently in flight, as it evolves.

My Bucket List
#

Old languages and dialects I would like to re-implement from their original specifications one day, in the same spirit as GD-BASIC and GD-FORTH - a queue of ideas rather than a roadmap with dates. Nothing here has any code behind it yet.

The My Bucket List Blog carries notes on what is currently on the list and why, as it grows and changes.

This index was last generated on 2026-08-30.