A C compiler in LISP, a LISP in C, and the subject that changed my life
In 1986 I took Compiler Techniques under Bruce Ellis and wrote a C compiler in LISP. I have got it running again, on hardware that did not exist when I wrote it.
7 articles, 1 role and 4 projects.
In 1986 I took Compiler Techniques under Bruce Ellis and wrote a C compiler in LISP. I have got it running again, on hardware that did not exist when I wrote it.
The template this site runs on, and what I learnt rebuilding it with two AI platforms.
I have rebuilt thirty-five HP calculators, from the 1972 HP-35 to the HP Prime, as a single web app. Not an emulator, but a reimplementation in TypeScript.
The 1980 game Rogue and the expert system built to play it, both compiled to WebAssembly and running side by side in a browser tab. The original C, not a rewrite.
Colossal Cave Adventure ported to strictly typed TypeScript over a few breakfasts, and checked against the original's own ninety-five test transcripts. Then a second model laid out the cave map the first one could not.
A beautiful operating system, still healthy after 50 years.
In 1987 five of us at Sydney University took Infocom's virtual machine apart to see how it worked. We did not expect it to matter to anyone else.
2016 — Present
Principal Consultant and Junior Janitor
Boutique strategy consultancy, publishing AI-dō, a book on working with AI in practice, and two native Apple applications released as free software.
2016 — Present
Colossal Cave Adventure, the game that founded interactive fiction, ported faithfully to modern TypeScript. With location art, a metro-style interactive map of all 151 rooms, and a Solve button.
A homage to every HP calculator, from the 1972 HP-35 to the HP Prime. Thirty-five models reimplemented in TypeScript on one shared engine, running in your browser.
The C compiler I wrote in LISP for Bruce Ellis's Compiler Techniques subject at Sydney, recovered and grown into a full K&R 1978 compiler that emits arm64 instead of VAX. Ships with a reconstruction of the LISP interpreter it was marked against and the 1979 Seventh Edition C library, so the whole thing still bootstraps itself to a byte-identical fixed point.
The classic 1980 Unix game Rogue and its automated player Rog-O-Matic, running in the browser. Not a reimplementation, but the original C source compiled to WebAssembly.