Welcome to the Dictionary of Programming Languages, a compendium
of computer coding methods assembled to provide information and
aid your appreciation for computer science history.
Browse the dictionary by clicking on a section:
A
B
C
D
E
F
G
H
I
JK
L
M
N
O
P
QR
S
T
UV
WXYZ+
Get a full dump of the dictionary:
List of Names
Short Form
Full Form
-
Befunge
- Language type:
T - Threaded or stack-based
- Description:
Befunge is an interpreted
low-level programming
language that uses a unique data model
and instruction set to perform
computations on a coordinate grid.
The Befunge machine model stipulates
the existence of a pushdown stack, and
a two-dimensional grid of cells. Each
cell can hold a data item, which may be
treated as an instruction or as data,
depending on program execution. The
"Instruction Pointer" can move in any
of four directions: up, down, left, or right.
Befunge's instruction set includes
stack manipulation, arithmetic,
rudimentary I/O, conditional
branches (both horizontal and vertical),
and many other operations.
In Befunge-93, the grid was fixed in size:
80x24, but Befunge-97 allows an unlimited-size
grid.
In Befunge-93, the data types
supported were 32-bit integers
and bytes, but Befunge-97
supports only machine-width integers.
Befunge-97 also supports a broad
set of interpreter directives (very
roughly analogous to assembler
directives or C preprocessor directives)
to help the programmer take advantage
of the larger grid.
Several free
implementations of both old Befunge-93
and newer Befunge-97 exist, some
explicitly for PCs and at least one that
is highly portable (based on Perl).
Fairly good documentation and some
example programs are available on the web.
- Origin:
- See Also:
- Remarks:
Befunge with its relatives probably has
a fair claim to being the weirdest
programming language yet implemented.
Even more mind-boggling is that it
garnered enough of a community to
warrant a second, expanded language
definition and several additional
implementations.
In general, a Funge is a programming
language based on a tiling coordinate space
of
cells and allowing arbitrary motion of
the Instruction Pointer. Befunge is a
2-dimensional cartesian Funge. Other popular
possibilities are Unefunge (1-D) and
Trefunge (3-D).
It has been hypothesized that Befunge-97
is Turing Complete, but no proofs seem to
be available.
- Links:
-
-
- Date:
- Sample code:
A Befunge program to compute a square root
(by Jason Reed):
v>00p10p>00g:10g\/v
^:&< |:-1p00/2+<
>93*^ >00g.@
A Befunge program to generate random
integers (by Ken Bateman):
088+>v
>+\^1@
1 \-.
>? ^:\
^+:\_^
Descriptions in this dictionary are ©1997-99 Neal Ziring. Some
examples copyright of their respective authors. Some
technologies and languages are trademarked. Permission to
copy descriptions is granted as long as authorship credit is preserved.
Comments on this dictionary, corrections and suggestions, are all welcome.
Please use email, the address is ziring@home.com
[Ziring MicroWeb Home]
[Dictionary Start]
[Sign Guestbook]
Dictionary and script maintained by Neal Ziring, last major modifications 3/18/98. Most recent
additions to dictionary and master list, 1/00.