Befunge

From Wikipedia, the free encyclopedia

Date de première version1993
AuteurChris Pressey
Influencé parForth
Brainfuck
FALSE (d)Voir et modifier les données sur Wikidata
Befunge
Programme "Hello World!" en Befunge
Programme "Hello World!" en Befunge

Date de première version 1993
Auteur Chris Pressey
Influencé par Forth
Brainfuck
FALSE (d)Voir et modifier les données sur Wikidata
Site web http://quadium.net/funge/spec98.html

Befunge est un langage de programmation exotique réflexif à pile. Il diffère des langages conventionnels par le fait qu'il est arrangé sur une grille à deux dimensions. Des instructions « flèche » dirigent le flux de contrôle à gauche, à droite, en haut, en bas, et des boucles sont construites en envoyant le flux de contrôle dans un cycle.

Le langage a été créé par Chris Pressey en 1993, comme tentative de définir un langage aussi difficile à compiler que possible - la commande p permet le code automodifiant. Toutefois, un certain nombre de compilateurs ont été écrits par la suite. Un certain nombre d'extensions aux spécifications originelles « Befunge-93 » existent également, parmi lesquelles Funge-98, qui étend le concept à un nombre arbitraire de dimensions et peut être multi-threadé, avec des compteurs ordinaux multiples opérant de manière simultanée sur le même espace. Les extensions et variantes de Befunge sont appelées « Fungeoids » ou simplement des Funges.

Les spécifications de Befunge-93 restreignent tout programme valide à une grille de 80 instructions horizontalement à 25 instructions verticalement. Toute exécution du programme excédant ces limites se retrouve de l'autre côté de la grille. Un programme Befunge est de cette manière topologiquement équivalent à un tore. Comme un programme Befunge-93 ne peut avoir qu'une unique pile et que son tableau de stockage est limité, le langage Befunge-93 est, contrairement à la plupart des langages, non Turing-complet. Les spécifications Funge-98 fournissent la complétion Turing en enlevant la restriction de taille sur les programmes. Au lieu d'avoir des bords reliés de part et d'autre, Funge-98 fait en sorte que le compteur ordinal suive un modèle surnommé « Lahey-space » en référence à son créateur, Chris Lahey. Dans ce modèle, la grille se comporte comme un tore de taille finie par rapport à son repliement, tout en lui permettant de s'étendre infiniment.

Exemple de code Befunge

Liste des instructions

Liens externes

Related Articles

Wikiwand AI