Babbage Analytical Engine Assembly for Visual Studio CodeBabbage Analytical Engine Assembly support for Visual Studio Code is provided by this extension. It brings together a fully modern (2026) development experience for writing, running, and debugging This extension is for the Analytical Engine assembly language documented by John Walker and should run his example programs verbatim. It is not a new dialect, alternate syntax or separate language design. If you want to know how to program the machine, see the original programming references:
mandelbrot.ae is recommended as an additional test program. Features
Debugging and RunningYou can use the extension in two ways:
During debugging, the extension can stop on entry, honor source breakpoints, expose Mill and Store state through the Variables view, and surface plotter output when the program draws a curve. Include ResolutionThe extension follows the emulator's current source-relative include rule.
That behavior is intentional because it scales cleanly to large projects with nested folders and many Known IssuesThe bundled JavaScript emulator strips comment lines before execution. This differs from John Walker's original browser emulator, which could retain comments in the mounted card chain. As a result, some original Walker examples which use literal combinatorial jump distances may not run verbatim in this extension. Development
Useful scripts:
About the ProjectQ: Is this serious historical computer science education software or a joke? A: Yes. Q: What level of effort was involved in making this? A: I forked an existing emulator somebody else wrote and just added a little glue and polish to make it run inside Visual Studio Code. Q: Is the code in this extension just a bunch of hastily thrown together heavily vibe coded LLM slop? A: Absolutely 100% "Owner of a Lonely Heart" Yes and I didn't even scrutinize its work very hard. It wasn't single prompt or anything silly like that but I did sit back and let the model write the code while I described what I wanted feature by feature. I was far more interested in a functional end result based on manual testing than I was in making sure every detail was correct on this. I would not recommend working this way when building code on which anybody's life could depend, but LLMs made it possible to throw this together in just a few days. |