BASIC, in Roc

An ECMA-55 Minimal BASIC interpreter, hand-written in Roc and compiled to WebAssembly, with a thin JavaScript layer for the page. Everything below runs in this tab. How it works, and what Roc makes hard.

The machine is a Roc value. The page starts it with the listing and a seed, and the machine hands itself back whenever it wants a line typed, sleeps, prints a line, or has run a few thousand statements; the page paints what it drew and resumes it. Graded against the National Bureau of Standards' Minimal BASIC test programs and the 1978 BASIC Computer Games listings. Source: github.com/showell/roc-apps (basic/). This page was authored by Steve Howell with Claude in September 2026.