Befunge
programovací jazyk From Wikipedia, the free encyclopedia
Remove ads
Befunge je dvojdimenzionální ezoterický programovací jazyk vyvinutý roku 1993 Chrisem Presseyem. Hlavním cílem bylo vytvořit jazyk, který bude tak obtížný ke kompilaci, jak jen to bude možné.

Historie
Befunge je pravděpodobně první dvojdimenzionální obecný programovací jazyk založený na kódování ASCII. Byl částečně ovlivněn multimediální skriptovací aplikací AmigaVision a jazykem Forth.
Z původního jazyka Befunge (používá se označení „Befunge-93“) vzniklo mnoho odvozených jazyků. Nejpodobnější je jazyk Befunge-98 z rodiny Funge-98, která rozšiřuje koncepty Befunge do více dimenzí (Unefunge je jednodimenzionální, Trefunge trojdimenzionální atd.)
Remove ads
Přehled jazyka
Program v Befunge je reprezentován dvojdimenzionální plochou (playfield, v Befunge-98 funge-space) pevné velikosti. Zdrojový kód reprezentuje výchozí stav této plochy, který se do ní uloží před vlastním spuštěním programu. Obsah je poté možno programově upravovat (tzn. vytvořit kód modifikující sebe sama).
Spouštění jednotlivých instrukcí se děje pomocí ukazatele (program counter v Befunge-93, instruction pointer v Befunge-98). Ukazatel je na začátku umístěn v levém horním rohu (na souřadnicích 0,0) a směřuje doprava. Vždy se spustí instrukce na pozici ukazatele a ukazatel se poté posune. Jednotlivé instrukce mohou ovlivnit směr ukazatele, čímž se dají naprogramovat řídící konstrukce. Následující příklad ukazuje nekonečný cyklus:
>v ^<
Instrukce mohou také pracovat se zásobníkem.
Remove ads
Seznam instrukcí
Befunge-93 obsahuje následující instrukce:
Příklady
Hello, world!
0"!dlroW ,olleH">:#,_@
Program cat
~:1+!#@_,
Faktoriál
0&>:1-:v v *_$.@ ^ _$>\:^
Eratosthenovo síto
2>:3g" "-!v\ g30 < |!`"O":+1_:.:03p>03g+:"O"`| @ ^ p3\" ":< 2 234567890123456789012345678901234567890123456789012345678901234567890123456789
Quine
01->1# +# :# 0# g# ,# :# 5# 8# *# 4# +# -# _@
Odkazy
Externí odkazy
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads