Stuff in this part of the site
Befunge binary quine
This quine will output itself in binary:
A quine for Befunge-98 interpreters which support the 'TURT' fingerprint. It will draw itself using the turtle device.
A Befunge-93 program that performs a set of specification compliancy tests on your interpreter.
A set of Befunge interpreters written in Befunge, in varying states of usefulness.
A Befunge interpreter written in Unefunge.
My incomplete fusion of CoreWars and Befunge.
A befunge-93 program to verify the behaviour of the division and remainder instructions.
A suite of programs and auto-loader to test for a plethora of features that a spec-compliant funge-98 interpreter should support.
An inefficient program to generate the Hamming code of the supplied hex string.
Obligatory factorial program
":rebmun a retne esaelP">:#,_$1&>: #v_$\:#v_$.@
Just for fun, I wrote a couple of 'suicide' programs that erase themselves:
... and a shorter version ...
A variation of the troll programs (see below), these ones move around fungespace by 'rolling' themselves.
(sudoku1.bf, 3,476 bytes)
A fairly inefficient program to solve Sudoku puzzles. The puzzle can theoretically be any size, the program will detect it itself. Needs a graphical interpreter so you can view the result.
A set of programs that copy/move themselves around fungespace.
(ytest.bf, 507 bytes)
A smallish Befunge-98 program to display the output of the Y command. Only works on interpreters that implement all the Y variables, since the full set is requested.
For Befunge-in-Befunge/Unefunge interpreters, see above.
All-singing, all-dancing Funge-98 interpreter for RISC OS. Can also be compiled as a console app for non-RISC OS machines.
(bepro.pro, 6,646 bytes)
A simple Befunge-93 interpreter written in Prolog.
It doesn't entirely obey the spec (in particular integers are read as terms and so must end in a full stop (and could even be entered as floating point numbers)), but it should work OK.
A Befunge interpreter written in 1K of ARM assembler.
(interfunge.zip, 9,015 bytes)
A Befunge-93 interpreter written in INTERCAL.
Apologies for making the code so readable, but this was my first INTERCAL program. When the interpreter is started it reads the Befunge program from standard input; enter a blank line to signify the end of fungespace. Currently number IO is performed using WRITE IN and READ OUT, this may change to decimal character IO if decimals aren't proven to be a new-age fad. The interpreter should mostly work, if you find something that doesn't then have fun fixing it. Code is now licensed under the GPL v2.
My first attempt at compiling Befunge programs. Doesn't support self modifying code, but can perform some simple optimisations on the output.
A new compiler, developed from the one presented above. Doesn't support self-modifying code, the full Befunge-98 spec, or any optimisations, but is probably the only Befunge compiler written in Befunge. Can compile itself.
A more sensible version of the above compiler. Supports more of the Befunge-98 spec, and can optimise the resulting code.
My perpetually work-in-progress attempt at converting C code to Befunge.
(dynafing.txt, 10,154 bytes)
This page details the dynamic fingerprint system I've implemented in my Funge-98 interpreter !Befunge. It's based around the systems used by the PJSF, zfunge, and RC/Funge-98 interpreters, so fingerprints should be fairly cross-compatible. However it also implements several improvements, such as fingerprints loading fingerprints, file access, simpler controls over the 'haunted' IP, etc.