Was kann man mit Brainfuck (Programmiersprache) alles Programmieren?

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet
Was kann man mit Brainfuck (Programmiersprache) alles Programmieren?

Theoretisch fast alles, praktisch fast nichts.

  • Was kann man theoretisch mit BF realisieren: Turing-Vollständigkeit bedeutet dass man prinzipiell alle denkbaren Algorithmen realisieren kann.
  • Was kann man praktisch mit BF realisieren: Im Grunde nichts was einen Nutzen hat, da es keinen Zugang zu Schnittstellen gibt (also kann man z.B. keine GUI aufbauen, keine Dateien speichern oder lesen, keine Daten übers Netzwerk übertragen).
Wozu kann man sie gebrauchen?

Zur Unterhaltung und zur Demonstration grundlegender Prinzipien von Programmiersprachen und Compilern.

Da die Sprache Turing Vollständig ist kann man alles mit ihr Programmieren.

Die Sprache ist aber als Esotherische Sprache nicht für den Produktiven Einsatz gedacht.

KuarThePirat  15.11.2023, 21:41

Ich bin kein Informatiker, aber Turing vollständig heißt doch nicht zwangsweise, dass man damit alles programmieren kann, oder?

Ich kann in brainfuck ohne Umwege keinen Webserver programmieren, weil ich keine Sockets öffnen kann.

0
Kelec  16.11.2023, 09:12
@KuarThePirat

Turing Vollständig bedeutet, dass sich jeder Algorithmus umsetzen lassen kann.

Schnittstellen können natürlich ein Problem sein weil diese vom OS verwaltet werden was aber eine Einschränkung der Laufzeitumgebung am jeweiligen Betriebssystem und nicht der Sprache an sich ist.

Die kann man aber umgehen wenn man sich zB einrichtet, dass der IO Bytestream von Brainfuck auf einen Socket weitergeleitet wird.

Alle Protokolle sowie das gesamte Sessionmanagement können ja umgesetzt werden.

Auf einem OS welches direkte Hardwarekommunikation erlauben würde oder ganz ohne OS könntest du aber alle notwendigen Komponenten vom Treiber bis Webserver in Brainfuck implementieren.

Würde jemand eine Compiler bzw Baremetal Interpreter für Brainfuck erstellen könntest du sogar das ganze OS in Brainfuck schreiben.

0