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.
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.
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< v1>3v4 ^ ^ > >?> ?>5^ v v v9>7v6 v v< 8 . > > ^ ^<
Program wyświetlający „Hello world!”:
> v v"Hello world!"< > ,,,,,,,,,,,, @
Linki zewnętrzne
- Kategoria: Ezoteryczne języki programowania