Laden...

BefSharp - Befunge Interpreter in C#

Erstellt von AyrA vor 10 Jahren Letzter Beitrag vor 10 Jahren 2.816 Views
AyrA Themenstarter:in
60 Beiträge seit 2010
vor 10 Jahren
BefSharp - Befunge Interpreter in C#

Was ist Befunge?
Befunge ist eine sogenante esotherische programmiersprache, sprich eine Programmiersprache, die nicht wirklich darauf ausgelegt ist, einfach zu benutzen oder auszuführen zu sein. (in Java2k z.B. hat ein Befehel eine Wahrscheinlichkeit von ca. 90% das zu tun, was er soll).

**Befunge ist insofern esotherisch:***Jede Anweisung ist genau 1 Zeichen lang *Der Code kann mittels >^<v umgelenkt werden *Der Code kann sich selbst modifizieren *Keine Variablen, nur ein einzelner Stack *Der Interpreter kann auf einer Seite "raus laufen" und erscheint auf der anderen wieder.

Hindernisse
Die Instruktionen selbst sind überschaubar und einfach zu implementieren. probleme bereiten Änderungen im source Code generell, da diese das Vorkompilieren mit einfachen mitteln unmöglich machen, sowie Änderungen im Code ausserhalb des Sichtbaren ASCII bereiches (<32 oder >126) ohne den code zu verunstalten.

Features*Schnelle Interpretation im "run" Modus, teilweise über 500 Instruktionen pro Sekunde und mehr. *Erlaubt Ensicht in den Stack und die aktuelle Code Position *Erstellung von EXE Dateien für Distribution.

Download
Download des Source codes und prekompilierter Anwendungen sowie einigen Beispielen auf GitHub: https://github.com/AyrA/BefSharp

Screenshot
Der Screenshot zeigt ein Beispielprogramm bei der Ausführung. Das Konsolenfenster verschiebt sich automatisch mit dem Code Fenster mit.

**:::

49.485 Beiträge seit 2005
vor 10 Jahren

Hallo AyrA,

nett!

Ich habe gerade mal auf Wikipedia geguckt und mit dieser Sprache kann man anscheinend immerhin einige praktisch verwendbare Programme schreiben. Gut gefallen hat mir Conways Game of Life in Befunge. Da kann man optisch gut erkennen, wie Programmcode und Daten gemeinsam im Quellcode abgelegt sind.

herbivore

AyrA Themenstarter:in
60 Beiträge seit 2010
vor 10 Jahren

Im Beispielordner auf Github hat es sogar ein Serpinsky-Triangle Generator. Einige Beispiele sind auch hier zu finden: Befunge programs
Diese sind jedoch nicht immer Befunge-93.

Für die, die sich selbst an einen Interpreter wagen wollen oder einfach nur einen Eindruck von solchen Sprachen haben möchten, hier eine Liste von "Hello World" Programmen in über 160 eso-sprachen: Hello world program in esoteric languages

**:::

A
764 Beiträge seit 2007
vor 10 Jahren

Hallo AyrA,

erstmal danke. Durch dein Projekt, habe ich mich mal mit esoterischen Programmiersprachen beschäftigt und mit deinem Programm sogar ein Hello World in Befunge geschrieben.
War etwas schwierig, weil Stop und ein paar weiter Optionen noch nicht ganz funktionieren.

Schönen Gruß, Alf

AyrA Themenstarter:in
60 Beiträge seit 2010
vor 10 Jahren

Stop funktioniert schon, jedoch wird glaube ich nur alle 2000 Instruktionen das stop Kommando geprüft, dies kann aber im code des F5 Befehles runtergeschraubt werden. Ort: frmMain.cs Zeile 124
Grundsätzlich empfehle ich das debuggen sowieso mit F8, da es keine Fehlermeldungen gibt bei ungültigen Operationen (z.B. bei leerem Stack eine Addition versuchen)

**:::