Najlepsze pytania
Chronologia
Czat
Perspektywa
BeFunge
język programowania Z Wikipedii, wolnej encyklopedii
Remove ads
BeFunge – ezoteryczny język programowania opracowany w 1993 roku przez Chrisa Pressey’a[1].
Programy w nim, w odróżnieniu od większości języków programowania, są zorganizowane w dwuwymiarowej tablicy. Instrukcje „strzałkowe” (< > ^ v) powodują przeniesienia sterowania, a pętle są tworzone poprzez zorganizowanie sterowania „w kółko”. Każda instrukcja w BeFunge jest oznaczana pojedynczym znakiem[1].
W języku BeFunge program wykonuje się czytając instrukcje, poruszając się po dwuwymiarowym obszarze. Zatem „licznik programu” składa się z dwóch liczb, oznaczających współrzędne na tablicy programu. Natomiast do przenoszenia i przechowywania wszelkich danych służy stos (obsługiwany zresztą na podobnych zasadach co w językach Forth i False).
W 1998 Chris rozszerzył język, dodają nowe funkcje. Dlatego pierwotna wersja nazywana jest często BeFunge-93[1].
Remove ads
Kompilatory BeFunge
Autorem BeFunge jest Chris Pressey, który stworzył ten język w 1993, w zamierzeniu jako język o niezwykle trudnym do napisania kompilatorze.
Poza kompilatorami dla BeFunge-93 istnieją też kompilatory z odpowiednimi rozszerzeniami. Wartym uwagi jest Funge-98, w którym programy można organizować w przestrzeniach dowolnego wymiaru (dla 1 Unifunge, dla 2 BeFunge, dla 3 TreFunge itd.), a nawet posiada programowanie wielowątkowe, czyli w całej przestrzeni może być więcej niż jeden „licznik programu”. Tego typu rozszerzenia są zwane Fungeoidami.
Remove ads
Główne cechy języka Befunge
- interaktywność – język ma wbudowaną prostą operację wejścia, umożliwiającą zapytanie użytkownika o daną (znak lub liczbę),
- brak symboli – język nie definiuje symboli, w szczególności nie ma w nim możliwości deklarowania stałych, zmiennych i podprogramów,
- mechanizm samomodyfikowania się programu.
Instrukcje
Podsumowanie
Perspektywa
Instrukcje, podobnie jak w języku Forth operują wyłącznie na stosie, tzn. argumenty operacji są zbierane ze stosu, wynik operacji jest odrzucany na stos.
Remove ads
Przykłady
Program, który wyświetla pseudolosowe cyfry w nieskończonej pętli:
vv < < 2 ^ v< v1<?>3v4 ^ ^ > >?> ?>5^ v v v9<?>7v6 v v< 8 . > > ^ ^<
Program wyświetlający „Hello world!”:
> v v"Hello world!"< > ,,,,,,,,,,,, @
Remove ads
Przypisy
Linki zewnętrzne
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads