Befunge a stack-based esoteric programming language. Designed by Chris Pressey for the Amiga in 1993, the goal for the language was to create a language that was difficult to compile.
An esoteric programming language is one that is designed to test the boundaries of language design, as a proof of concept, or as a joke. Some of these languages serve as hacking interfaces to other languages or serve other actual purposes. Usability is not generally a goal for esoteric programming languages.
Unlike most other languages, Befunge programs are arranged on a two-dimensional grid. The executing program has an instruction pointer that moves in cardinal directions as instructions are being processed. As the instruction pointer moves along, it pushes values to or from the stack or takes an action on the values at the top of the stack.
Since it was first released, a number of compilers have been written for it, and extensions to the original Befunge-93, the most notable being Funge-98. Extensions or variants of the Befunge language are known as Fungeoids or Funges.
By itself, it's probably not very useful but, to programmers, being exposed to a different way of thinking about programming may be valuable.
Topics related to Befunge or any of its variants, extensions, or compilers are the focus of topics in this category.
 
 
Recommended Resources
Released by Chris Pressey in 1998, the programming language specifications include an introduction to the language and the Funge virtual machine, along with program information, communications and storage, extension and customization, an appendix and quick reference. Also included is information about the Funge source file format, illustrations, and code examples, as well as the Lahey-Space, which is a mathematical model of the space used in Funge-98.
http://quadium.net/funge/spec98.html
Befunge-93 is the original version of Befunge, as created by Chris Pressey in 1993. Available from GitHub, along with a Befunge-93 reference interpreter, a Befunge-93 to ANSI C compiler, a Befunge-93 profile, along with the documentation, specifications, and source codes. An overview of the programming language from Cat’s Eye Technologies is put forth, along with past and current releases, a list of contributors, and its distribution license. Issues may be reported on the site.
https://github.com/catseye/Befunge-93
Released into the public domain, under what is known as an Unlicense, BefungeSharp is an integrated development environment (IDE) for coding Funge-98 for the Windows platform, the result of a project to create a Befunge93/98 interpreter and debugger using the C# language. As a Funge-specific editor, writing Funge code is more enjoyable in this IDE than it would be in Notepad. Its editing, interpreting, debugging, and other features are highlighted, and planned features are announced.
https://github.com/tngreene/BefungeSharp/
This is a simple Befunge-98 interpreter coded in Erlang. The interpreter uses arbitrary-sized integers, as a side effect of Erlang’s default. The files, documentation, and source code may be downloaded from the site. Other requirements are the Erlang programming language, preferably version 18, a *nix make, and an optional POSIX compatible shell for the wrapper script. It may also be run from inside the Erlang shell. Building and running instructions are given.
https://github.com/VorpalBlade/efunge
Funge-98 is a family of programming languages, including Befunge-98, Unefunge-98, and Trefunge-98, which were designed to be a successor to Befunge-93. This distribution, available from GitHub, includes the Funge-98 final specification, the Funge-98 fingerprints library, and the Funge-98 ERRATA, without implementations. Development notes are posted to the site, and any issues may be reported on the site. Contributors are listed, and both current and past releases are available.
https://github.com/catseye/Funge-98/
PyFunge is a functional, conforming, and optimizing Befunge-93 and Funge-98 implementation written in the Python programming language. Featured here is an introduction to the Funge family of languages, PyFunge, and the installation requirements and directions, as well as options, supported languages, and documentation on programming with PyFunge, extending the language, and test formats and categories. Version release notes are posted, and a search field is included.
https://pythonhosted.org/PyFunge/
The RC/Funge-98 interpreter was one of the first Funge interpreters to implement the Funge-98 specifications, and the first to support concurrent funge, as well as to implement a mechanism for Funge fingerprints to be written in Funge code and dynamically loaded. Released in late 1998, the interpreter is still actively supported. Its features are highlighted, along with development notes, documentation, tutorials, and diagnostics. Currently, two versions are available for download.
http://www.rcfunge98.com/
Befunge is a stack-based, reflective, esoteric programming language. It differs from more traditional languages in that programs are arranged on a two-dimensional grid, with arrow instructions directing the control flow to the left, right, up, or down, and loops are constructed by sending the control flow in a cycle. An instruction set is posted, and the programming language may be tested in a browser, using run mode. Included are the stack, the grid, and a help section.
https://befunge.flogisoft.com/