Befunge

Le Befunge est un empiler-basé par , le r3fléchissant, le langage de programmation ésotérique de du . Il diffère des langues conventionnelles du fait des programmes sont arrangés sur une grille bidimensionnelle. " ; Arrow" ; les instructions dirigent le flux de commande vers le gauche, droit, vers le haut ou vers le bas, et des boucles sont construites en envoyant le flux de commande dans un cycle.

Histoire

La langue a été à l'origine créée par Chris Pressey dans le 1993 comme tentative de concevoir une langue il est aussi difficile de compiler qu'en tant que &mdash possible ; noter que la commande de p tient compte du code de Individu-modification . Néanmoins, un certain nombre de compilateurs ont été plus tard écrits. Un certain nombre de prolongements au " original ; Befunge-93" ; les spécifications existent également, y compris Funge-98, qui prolonge le concept à un nombre arbitraire de dimensions et peut être multifil, avec des indicateurs d'instruction multiple fonctionnant simultanément sur le même espace. des Befunge-prolongations et les variantes s'appellent Fungeoids ou juste le Funges de '.

Les spécifications Befunge-93 limitent chaque programme valide à une grille de 80 instructions horizontalement par 25 instructions verticalement. Exécution du programme qui dépasse le " de ces limites ; enveloppe l'around" ; à un point correspondant de l'autre côté de la grille ; un programme de Befunge est de cette manière le topologiquement équivalent à un tore . Puisqu'un programme Befunge-93 peut seulement avoir une seule pile et sa rangée de stockage est liée, la langue Befunge-93 est, à la différence de la plupart Turing-complet des langages machine pas. Les spécifications Funge-98 postérieures fournissent la Turing-perfection en enlevant les restrictions de taille sur le programme ; plutôt que s'enveloppant autour à une limite fixe, le mouvement d'un indicateur d'instruction Funge-98 suit un " doublé modèle ; Lahey-space" ; après son créateur, Chris Lahey. Dans ce modèle, la grille se comporte comme un tore de taille finie en ce qui concerne l'emballage, tout en se permettant toujours d'être prolongé indéfiniment.

Code de l'échantillon Befunge-93

La technique d'employer des flèches pour changer le flux de commande est démontrée dans le programme de générateur de nombre aléatoire ci-dessous. Après les flèches autour, le ? les instructions de envoient l'indicateur d'instruction dans des directions cardinales aléatoires jusqu'à ce que l'indicateur frappe un chiffre, le poussant à la pile. Alors les flèches dirigent au . pour produire le chiffre de la pile et pour renvoyer l'indicateur au premier randomiser directionnel. Noter qu'il n'y a aucun @ pour terminer ce programme ainsi il produit un jet sans fin des nombres aléatoires à partir de 1 à 9.

vv < < 2 v< de ^ v1< ? >3v4 ^ de ^ > > ? > ? >5^ v v v9< ? >7v6 v< v 8 . > > ^ ^<

C'est un exemple du " classique de ; Bonjour monde ! " ; programme . D'abord le " de lettres ; olleH" ; sont poussés sur la pile comme nombres du ASCII . Ceux-ci sont alors sautés de la pile dans l'ordre du LIFO et du rendement comme caractères des textes pour donner le " ; Hello" ;. Un espace est le caractère le numéro 32 dans l'ASCII, qui ici est construite en multipliant 4 et 8, avant d'être produite comme texte. Le code restant produit alors le " ; Monde ! " ; d'une manière semblable, suivie du caractère d'ASCII 10 (caractère de retour à la ligne , déplaçant le curseur de rendement à une nouvelle ligne).

> v v, " ; Hello" ; < >48*, v v, " ; Monde ! " ; < >25*, @

Liste de l'instruction Befunge-93

Voir également

Brainfuck
Coeur - jeu de programmation de carnage de de Playstation using une langue semblable
INTERCAL
Whitespace

.

Random links:Massif | À (facteur de forme) | Ralph Allen Sampson | LatCharter | Lycée de Bedwas | Befunge