Úvodní stránka | Tato stránka v originále

Befunge

Befunge je hromada-umístěný esoterický programovací jazyk který se liší od tradičních jazyků v tom programy jsou uspořádány na dvojrozměrné mřížce. ' šipka ' instrukce nařídí průběh nalevo, pravý, zvýšit nebo sestřelit, a smyčky jsou postaveny tím, že pošle průběh v kruhu.

Tabulka s obsahem
1 historie
2 Sample Befunge kód
3 poučení v Befunge

Historie

Jazyk byl původně vytvořen Chrisem Pressey v roce 1993, jako pokus vytvořit jazyk jak těžký kompilovat jak možný - si všimnout toho ' p ' příkaz počítá s self-modifikovat kód. Přesto, množství kompilátorů následovně byli psaní. Množství rozšíření k originálu ' Befunge-93 ' specifikace také existovat, včetně Funge-98, který rozšíří pojetí na libovolné číslo rozměrů a moci být multithreaded, s rozmanitými instrukčními ukazateli operovat současně na stejném prostoru.

Sample Befunge kód

Tato technika šípu je demonstrována v náhodném čísle generátorový program dole:

vv  3v4
    ^   ^
>  >?>  ?>5^
    v   v
 v9  >   ^
^

Poučení v Befunge

0-9Tlačit toto číslo na hromadě
+Sčítání: Pop a b, pak tlačit +b
-Odčítání: Pop a b, pak tlačit b-
*Násobení: Pop a b, pak tlačit *b
/Rozdělení celého čísla: Pop a b, pak tlačit ' \ ' b/, zaokrouhlil dolů. Jestliže ' ' je nulový, žádat o uživatele jaký výsledek, který oni chtějí.
%Modulo: Pop a b, pak tlačit zbytek rozdělení celého čísla b/. Jestliže je nulový, žádat o uživatele jaký výsledek, který oni chtějí.
!Logický ne: Vyjmout hodnotu; jestliže hodnota je nulová, tlak 1, jinak nulový.
`Větší než: Pop a b, pak tlačit 1 jestliže b>, jinak nulový.
>Pohyb pravý
Zbylý pohyb
^Postoupit
vPohyb dolů
?Pohyb v náhodném směru
_Vyjmout hodnotu; pohyb pravý jestliže hodnota = 0, odešel jinak
|Vyjmout hodnotu; klesat jestliže hodnota = 0, nahoru jinak
"Odstartovat režim řetězce: tlačit každou postavu je ASCII hodnota celá cesta nahoru k příští "
:Dvojitá hodnota na vrcholu zásobníku
\\Vyměnit dvě hodnoty na vrcholu zásobníku
$Popová hodnota od hromady
.Popová hodnota a výstup jako celé číslo
,Popová hodnota a výstup jako ASCII znak
#Trampolína: Přeskočit další buňku
gPop y a x, pak tlačí ASCII hodnotu charakteru u té pozice v programu
pPop y, x a v, pak změnit charakter u pozice x/y v programu k charakteru s ASCII hodnotou v
Žádat uživatele za číslo a tlačit to
~Žádat uživatele za charakter a tlačit ASCII hodnotu
@Program konce

Viz též: esoterický programovací jazyk