Befunge

Befunge es un lenguaje de programación esotérico, funge-oide, reflexivo y basado en pila. Difiere de los lenguajes convencionales en que los programas están dispuestos en una parrilla bidimensional. Las instrucciones "flecha" dirigen el control de flujo hacia arriba, abajo, izquierda o derecha, y los bucles se construyen dirigiendo el control de flujo en círculo.

Historia

Befunge lo creó Chris Pressey en 1993 en un intento de diseñar un lenguaje tan difícil de compilar como humanamente posible fuera (observe que la orden p introduce la posibilidad de código mutante). Sin embargo se han escrito varios compiladores. También existen varias extensiones a la especificación original "Befunge-93", incluido Funge-98, que extiende el concepto a un número arbitrario de dimensiones y admite múltiples hebras de ejecución, con varios punteros de instrucción operando simultáneamente en el mismo espacio. Las extensiones y variantes de Befunge se denominan Fungeoides o simplemente Funges.

La especificación Befunge-93 restringe cada programa válido a una parrilla de 80*25 instrucciones (horizontal y vertical, respectivamente). Si la ejecución de un programa excede estos límites, "salta" a un punto correspondiente en el otro lado de la parrilla; así, un programa en Befunge es el equivalente topológico de un toro. Dado que un programa en Befunge-93 sólo puede tener una pila y tiene limitado su espacio de almacenamiento, el lenguaje Befunge-93 no es Turing completo, al contrario que la mayoría de lenguajes de máquina. La especificación posterior Funge-98 proporciona Turing-completitud eliminando las restricciones de tamaño del programa: en lugar de simplemente saltar a un punto opuesto en un límite fijo, el movimiento de un puntero de instrucciones Funge-98 sigue un model denominado "espacio de Lahey" en honor a su creador, Chris Lahey. En este modelo, la parrilla se comporta como un toro de tamaño finito con respecto a estos saltos, pero puede ser extendido de forma indefinida.

Other Languages
čeština: Befunge
Deutsch: Befunge
English: Befunge
eesti: Befunge
suomi: Befunge
français: Befunge
galego: Befunge
日本語: Befunge
한국어: 비펀지
Nederlands: Befunge
polski: BeFunge
português: Befunge
русский: Befunge
slovenčina: Befunge
svenska: Befunge