See http://www.catb.org/~esr/jargon/html/B/Befunge.html (or don't since it's duplicated below (except for the link here, which is up-to-date)).
- A worthy companion to INTERCAL; a computer language family which escapes the quotidian limitation of linear control flow and embraces program counters flying through multiple dimensions with exotic topologies. The Befunge home page is at http://catseye.tc/projects/befunge93/ .
Yet another EsotericProgrammingLanguage.
From the FAQ list:
If you thought one-dimensional Go-To's were scary...
- Befunge is an interpreted, two-dimensional, stack-based programming language originally created in 1993 by ChrisPressey. Basically, Befunge is the first language (to our knowledge) to allow the program counter to move not only forwards and back, but also sideways. The source code for the language looks like garbage. It has been described as "a cross between Forth and Lemmings."
My own BiotaLanguage also has a program counter that could move in four directions. Not only did my work predate Chris Pressey by several years, the implementation was sold online at a net profit in 1991. -- WardCunningham
- Just for the record, I don't think I've ever claimed that Befunge was the first two-dimensional programming language - only probably the first "general purpose" such language, with input, output, arithmetic and such - and if I ever did claim it was the first ever 2-D language, it was sloppy wording on my part (I didn't write the FAQ entry quoted above.) One of Befunge's direct influences was the multimedia scripting language AmigaVision, in which execution also occurred on a two-dimensional grid... I was also well aware of FlowCharts and 2-D CellularAutomata at the time, and of the fact that they existed before I was even born :) -- ChrisPressey
One of the design goals of Befunge, apparently, was to make a language impossible to compile. In university, I devised a proposal to get around this by designing a simple microprocessor which would, basically, run Befunge natively -- interpreting it in hardware, you could say. However, it was rejected as a topic for my bachelor's thesis, being of insufficient (none, really) practical value. I would like to get back to it someday, in my CopiousFreeTime
... -- KarlKnechtel
Here's something you don't see every day, Befunge implemented in Algol-68: http://www.wave.co.nz/~glyn/befunge.a68
What would TonyHoare say?
Is Befunge/Biota an inspiration for the PietLnguage??
See: ForthLanguage SnuspLanguage