Najlepsze pytania
Chronologia
Czat
Perspektywa

BeFunge

język programowania Z Wikipedii, wolnej encyklopedii

Remove ads

BeFungeezoteryczny 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.

Więcej informacji Instrukcje sterujące, Instrukcje sterujące warunkowe ...
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

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads