Skip to content
ALB Wiki

RockyBASIC

RockyBASIC

RockyBASIC was my first language project — a small compiler/interpreter skeleton written in C++, named after myself, and the hollow shell that ALB, PGB, and MALBR would eventually grow out of. I thought it was gone entirely: the final version died with the machine and the work when our family home burned down in August 2014. Then I found a DVD in some of my stuff — and on it, an older, less complete snapshot of RockyBASIC, source and build intact.

What's on the DVD

The archive — RockyBASIC-archive.zip, exactly as found — is a Visual Studio C++ project: lexer.cpp/.h, parser.cpp/.h, main.cpp, and a compiled RockyBASIC.exe. About 360 lines of code total. The lexer is a hand-rolled tokenizer that already knew real things: decimal, hex (0x), and binary (0b) literals, string escapes, ; comments, two-character operators (==, !=, <=, >=, ->), and case-insensitive keywords. The parser handled exactly four statements — let, print, if … then, and draw — with a comment-skipping token stream and error recovery that synchronizes back to a known keyword (the comments are literally marked FIXED, mid-development, "to avoid infinite loops").

And it still runs. The debug build in the archive executes its built-in demo program —

— and echoes its way through the parse, just as it did over a decade ago.

The keyword list was the whole future in miniature

The parser only understands five words — but the lexer knew twelve, and the seven it never reached are the interesting ones:

Keywords it parsedKeywords it only dreamed of
let · print · if · then · drawspawn · entity · shader · window · text · func · return

Those reserved-but-unimplemented words are the design document: spawn, entity, shader, window, draw — RockyBASIC wasn't meant to be a BASIC in the 1964 sense, it was meant to be a game scripting language for the C++ engine I was building at the same time (the engine behind ASCII Zombies and its kin — see the ALB article). The language that became ALB kept that instinct: a language that exists because a game needed one.

What the fire took — and what it didn't

The story I told for years was that RockyBASIC was lost — and in the sense that mattered, it still is. The version on that DVD is an older, less complete snapshot: a front end only, no executor, no code generator, a parser that echoes declarations instead of running them. Whatever the final RockyBASIC became — the version that died in August 2014 — stayed lost. What the DVD gives back is the fossil record anyway: the project file, the hand-rolled lexer, a parser with panic-mode error recovery, and a debug build that still echoes its own demo.

Where it sits

RockyBASIC is the founding ghost of the whole toolchain: the first time I built a language because I needed one, and the proof that the instinct predates the fire. Its successor is the full arc — AdaLog as the rehearsal, ALB as the production, and PGB as where the road goes from here. The archive stays downloadable as found: old, incomplete, unrepresentative of the finished version — and real.

Check your understanding

  • What was RockyBASIC — and what happened to its final version?
  • What survived on the DVD, and how complete is it?
  • What do the unimplemented keywords reveal about the project's goal?
  • What does the surviving RockyBASIC.exe actually do when run?
Show answers

1 — Rocky's first language project, a C++ lexer/parser skeleton (~2014); the final version was lost in the August 2014 house fire. 2 — an older, incomplete snapshot: the VS project source plus a compiled debug exe — front end only, no execution. 3 — spawn, entity, shader, window, draw — it was meant to be a game scripting language, not a general BASIC. 4 — it parses the built-in demo and echoes the parse — declarations, expression parts, and Executing statement: draw.

This page was last edited 2026-10-22 15:47:26 UTC by ALB Team. What links here