The BedroomLAN Befunge Interpreter

  • Alexios
  • befunge
  • interactive
  • javascript

This is your chance to play with Befunge online. The interpreter runs on your browser. I conceived this Befunge toy in a feverish fit (one might say it was ill-conceived), and as a way to practice JavaScript (not my favourite programming language1). Like in most things, I didn't come first. You should have a look at the original Javascript Befunge Interpreter.

If you need an actual Befunge interpreter, or need to run programs in more modern Befunge versions (Befunge '98 is the most recent language spec), have a look at the Wikipedia page on Befunge.

Befunge is not the work of the Mad Arab, it's the work of Chris Pressey from Cat's Eye Technologies. He has plenty of documentation on the language. You should also look at his other projects.

Instructions

Paste your Befunge '93 program in the source code box or choose one of the preset programs, then move the Edit/Interpret slider to ‘Interpret’ and hit ‘Run’. The code will run quite slowly, even in ‘Fast’ mode, allowing you to see how things work.

Language

The language interpreted is somewhere between Befunge 93 and Befunge 97, with some Befunge 98 support thrown in for good measure:

  • The program space is the Befunge 93 80×25 torus. There's no Lahey space at the moment.
  • Only a single PC (thread) is supported.
  • Befunge 97 literals are supported: 0–9 and a–f.
  • Character quoting (').
  • No flying PCs.
  • No handprints or fingerprints.
  • Just a single stack.

Even though the interpreter can't run the entire corpus of Befunge software (for lack of a better word) out there, it's still capable of running a lot of it.

Known Issues

Input works, but only barely. And it's klunky to boot.

Even fast mode is quite slow. This is purposeful. If you need a fast Befunge interpreter, why not download one that runs natively on your computer?

Pasting text copied from the program itself behaves strangely on at least Chrome.

Fixed Issues

2015-05-09: I fixed the inexplicably missing random operator (?).

  1. At least not back then — it's been growing in me since, though.