Reklama
Dzisiaj jest 10 stycznia 2025 r.
Chcę dodać własny artykuł
Reklama
Reklama
Reklama

BeFunge

BeFunge – Ezoteryczny Język Programowania

BeFunge to ezoteryczny język programowania stworzony w 1993 roku przez Chrisa Pressey’a. W odróżnieniu od tradycyjnych języków programowania, BeFunge organizuje programy w dwuwymiarowej tablicy. Instrukcje sterujące (strzałki: < > ^ v) kierują przepływem wykonania, a pętle są realizowane poprzez organizację sterowania w cyklu. Każda instrukcja jest oznaczona pojedynczym znakiem.

Reklama

W BeFunge programy wykonują się przez poruszanie się po dwuwymiarowym obszarze, co oznacza, że „licznik programu” składa się z dwóch współrzędnych. Do przechowywania danych wykorzystuje się stos, podobnie jak w językach Forth i False. W 1998 roku Pressey wprowadził rozszerzenia do języka, co spowodowało, że pierwotna wersja nazywana jest BeFunge-93.

Kompilatory BeFunge

Chris Pressey stworzył BeFunge jako język z zamiarem utrudnienia napisania kompilatora. Oprócz standardowych kompilatorów BeFunge-93, istnieją również kompilatory z dodatkowymi funkcjami. Przykładem jest Funge-98, który pozwala na organizację programów w przestrzeniach o dowolnym wymiarze oraz wprowadza programowanie wielowątkowe, co umożliwia posiadanie wielu „liczników programu” w jednej przestrzeni. Te rozszerzenia nazywane są Fungeoidami.

Reklama

Główne cechy BeFunge

  • Interaktywność: Wbudowana operacja wejścia pozwala na zapytanie użytkownika o dane (znak lub liczbę).
  • Brak symboli: Język nie definiuje symboli, co uniemożliwia deklarowanie stałych, zmiennych i podprogramów.
  • Samomodyfikacja: Programy mogą modyfikować same siebie w czasie działania.

Instrukcje

Instrukcje w BeFunge operują na stosie, gdzie argumenty są pobierane ze stosu, a wyniki operacji są na niego odkładane.

Przykłady Programów

Oto dwa przykłady programów w BeFunge:

Program wyświetlający pseudolosowe cyfry:

 vv  <      <
     2
     ^  v<
  v13v4
     ^   ^
 >  >?>  ?>5^
     v   v
  v97v6
     v  v<
     8
  .  >  >   ^
 ^<

Program wyświetlający „Hello world!”:

Reklama
>              v
v"Hello world!"<
> ,,,,,,,,,,,, @

Linki zewnętrzne

  • Kategoria: Ezoteryczne języki programowania
Reklama