From AST to bytecode execution in EndBASIC

Since its inception two years ago, the EndBASIC interpreter has been using an AST-based execution engine. And during all this time, people have mocked the language for not allowing 10 GOTO 10. Well, fear not: the upcoming 0.10 release has full support for GOTO and GOSUB, features that were made possible by moving to a bytecode-based interpreter. Let’s take a peek at what the problems were and how I addressed them.

November 22, 2022 · Continue reading (about 8 minutes)

EndBASIC 0.9: Run shared demos easily

It is with great pleasure that I announce the release of EndBASIC 0.9.0 😎️.

The major feature in this new release is the ability to launch publicly-shared files via a click of a URL without having to create an account first. Here, try running my jmmv/bounce.bas or jmmv/paint.bas demos in your browser, now!

June 5, 2022 · Continue reading (about 6 minutes)

EndBASIC 0.8: Now, with graphics!

Graphics support has finally landed in EndBASIC and, with that, the 0.8 release is finally here.

This release marks a huge milestone in the development of EndBASIC. Supporting graphics is something I’ve had in mind since the very beginning but had been procrastinating on until a couple of months ago. I feared everything that would be involved in delivering this feature, and to be fair, I was right: getting the desktop console to work on all platforms, and especially getting it to work in CI for automated testing, was tedious. But it’s done now.

November 11, 2021 · Continue reading (about 3 minutes)

EndBASIC 0.7: Hello, cloud!

Several months have passed since the last EndBASIC release and, since then, you might have seen me talk nonstop about an “EndBASIC service” in social media… which has sounded like vaporware. That changes today.

After about four months of work, I am ecstatic to announce that EndBASIC 0.7 is here. And these haven’t been four months of idle time. No, no, no. It has taken four months of my scarce free time to deliver this because 0.7 is a humongous release on various fronts.

July 3, 2021 · Continue reading (about 9 minutes)

EndBASIC 0.6 release announcement

After a very active month of development since the 0.5 announcement, it is time to welcome EndBASIC 0.6! This new 0.6 release is super-exciting for three reasons: preliminary GPIO support in the standard library specifically tailored to the Raspberry Pi; multidimensional array support in the language; and availability of binary releases for the most common platforms. You can dive right in by: visiting for an interactive session, reading more about the project at https://www.

February 19, 2021 · Continue reading (about 8 minutes)