BlackJack hat geschrieben:Was denkst Du denn was zum Beispiel Maschinenprogramme auf Deinem Rechner sind!? Das ist letztlich pro Prozess doch auch bloss ein grosses Array, wo der Prozessor die Maschine spielt und Zahlen als Befehle und Werte interpretiert.
Und C ist auch Turingvollständig und trotzdem kann man damit auf x86-Plattformen (fast) keine Hardware ansprechen oder komplette Betriebssysteme schreiben! Denn C bietet weder die Möglichkeit auf "Prozessorports" zu zu greifen, noch Unterbrecherbehandlung zu implementieren. Dazu muss man auf Assembler aus weichen.
Andererseits kannst Du in Brainfuck Pixelbilder im Array ablegen und die manipulieren. Wenn Du also eine Hardware hättest, die BF direkt ausführen kann, einen Bereich des Speichers als Framebuffer auffasst und den Zustand von Geräten wie Tastatur und Maus an festen Stellen in den Speicher einblendet, kann man auch in BF "problemlos" eine GUI schreiben.
Turingvollständigkeit hat etwas mit Berechenbarkeit zu tun und nicht, ob es eine Schnittstelle zu beliebiger Hardware gibt.
Okay, ich wusste nur nicht, dass man dazu spezielle Hardware bräuchte.
Also kann Brainfuck eigentlich alles, ist aber nur vom System abgetrennt?
Okay, also kann man mit Brainfuck nicht zum Beispiel andere Prozesse beeinflussen, weil es nur inerhalb seines eigenen Speicherbereiches arbeiten kann? Das fände ich nämlich interessant, hätte man was lernen können :p Oder auch was kaputtmachen.
Genau das wollte ich nämlich eigentlich wissen. Ob man mit Brainfuck alles machen kann, oder eben nicht. Und da hab ich eben aus Unwissen heraus etwas mit Turingvollständigkeit verwechselt.
Ich dachte Turingvollständig = kann alles

Aber es kann eben nicht alles, da die entsprechende Schnittstelle zur Hardware fehlt, weshalb es so ziemlich gar nichts kann. Beziehungsweise es kann theoretisch alles berechnen aber das Errechnete müsste dann von einem anderem Programm ausgeführt werden.
Ich hab mich eben gewundert: Es ist Turingvollständig aber ich kann damit keine GUI programmieren? Ich hab mich gefragt, wie man sowas machen soll, wenn man nicht aus seinem Array rauskommt

Aber okay, jetzt ist alles klar, dank deinem erhellendem Beitrag.
PS: Gibt's keine Freaks die schon eine entsprechende Schnittstelle programmiert haben oder so?
