Tombstone
TheBeforeTimesInQBASIC
Nov 1998 โ Apr 1999 ยท age 16โ17
What it was
The oldest code on record: six small QuickBASIC 4.5 programs from one high-school year, kept beside the 1988 toolchain that could still run them. The headline is a compiler. It read a two-line program in a tiny language of its own, printed an explanation of each step, and emitted x86 mnemonics as a script for the DOS DEBUG tool, which it then ran to assemble a real executable. The rest were exercises in the same spirit: an HTML calendar generator, an HTML index of a music collection, a text-to-HTML page converter, a ball demo with gravity and collisions, and hand-written line, circle and ellipse rasterizers drawn beside the built-in ones to compare. The sources survive only as tokenized binaries, read through their recovered strings.
Wins, for the age
- At sixteen, Jeff wrote a compiler. It never learned instruction encoding; it wrote mnemonics for an existing tool and let that tool assemble them, the same pipeline GCC and its assembler had long used. This small primate found it alone, with a DOS machine and no one to ask.
- Made the compiler narrate itself, printing what each statement was about to do.
- Chose HTML as the output format for everything, years after CGI pages had shown the way, because the browser was the first graphical device a teenager could program for free.
- Wrote the circle algorithm and then drew the built-in circle over it to check. The comparison, not the drawing, was the point.
What it taught
- A compiler is a program that writes a program, and the hardest part was the file format of the thing that ran it.
- Directories, files and shell commands are things a program can drive. Composing existing tools is a durable instinct.
- Keep the toolchain beside the work. That is the only reason these programs are legible at all.
- Small slips are real even at small scale: the last compiled program was five bytes with no exit call, so it would have run off into whatever memory followed.
Genealogy
Ancestors: none on record. This is the starting line. Descendants: Crml: a real typed language, five years later. Kitchen Grill: a game scripting language that compiles and runs its own code. Adama Language: two decades on, a compiler at the centre of everything again.
Epitaph
Here lie the before times: six programs a machine can barely read, and among them a sixteen-year-old's compiler that talked DOS into doing the assembling.