Bücher online kostenlos Kostenlos Online Lesen
Gödel, Escher, Bach - ein Endloses Geflochtenes Band

Gödel, Escher, Bach - ein Endloses Geflochtenes Band

Titel: Gödel, Escher, Bach - ein Endloses Geflochtenes Band Kostenlos Bücher Online Lesen
Autoren: Douglas R. Hofstadter
Vom Netzwerk:
verborgene Vorarbeiten nötig. Es ist übrigens interessant, daß die Wendung „dieser Satz“ im vorhergehenden Satz auftaucht, doch ist sie nicht da, um Selbstbezüglichkeit zu erzeugen; der Leser hat wahrscheinlich verstanden, daß sie sich auf den Quine-Satz bezog und nicht auf den Satz, in dem sie vorkommt. Das zeigt einfach, wie demonstrative Wendungen wie „dieser Satz“ aus ihrem Zusammenhang heraus interpretiert werden, und weist darauf hin, daß die Verarbeitung solcher Wendungen tatsächlich sehr kompliziert ist.
Ein Programm reproduziert sich selbst
    Die Idee des Quinierens und seine Verwendung bei der Erzeugung von Selbstbezüglichkeit wurde bereits innerhalb des Dialogs selbst erklärt; wir brauchen daher auf diese Dinge nicht im einzelnen einzugehen. Statt dessen wollen wir zeigen, wie ein Computerprogramm genau die gleiche Technik zu seiner Selbst-Reproduktion verwenden kann. Das folgende Selbst-Reproduzierungs-Programm ist in einer BlooP-ähnlichen Sprache abgefaßt und beruht darauf, daß man einer Wendung ihr eigenes Zitat folgen läßt. (Die dem Quinieren entgegengesetzte Reihenfolge, also drehe ich den Namen „Quine“ um und spreche von „eniuq“.)
    DEFINE PROCEDURE " ENIUQ " [ TEMPLATE ]: PRINT [ TEMPLATE , LEFT - BRACKET , QUOTE - MARK , TEMPLATE , QUOTE - MARK , RIGHT - BRACKET , PERIOD ].
    ENIUQ
    [' DEFINE PROCEDURE " ENIUQ " [ TEMPLATE ]: PRINT [ TEMPLATE , LEFT - BRACKET , QUOTE - MARK , TEMPLATE , QUOTE - MARK , RIGHT - BRACKET , PERIOD ]. ENIUQ '].
    ENIUQ ist eine Prozedur, die in den ersten beiden Zeilen definiert wird. Der Eingabeparameter ist „ TEMPLATE “ . Beim Aufruf von ENIUQ soll TEMPLATE stets eine Zeichenkette sein. Der Effekt von ENIUQ ist, TEMPLATE zweimal auszudrucken, einmal so, wie es eingegeben wurde, und dann noch einmal eingerahmt von (einfachen) Anführungszeichen und eckigen Klammern, versehen mit einem Schlußpunkt. Hätte TEMPLATE den Wert DOPPEL - MOPPEL , so wäre die Ausgabe von ENIUQ der Text:
    DOPPEL - MOPPEL [' DOPPEL - MOPPEL '].
    In den letzten vier Zeilen des oben abgedruckten Programms wird die Prozedur ENIUQ mit einem speziellen Wert von TEMPLATE aufgerufen — der langen Zeichenkette in Anführungszeichen: DEFINE ENIUQ . Dieser Wert wurde mit Bedacht gewählt; er besteht aus der Definition von ENIUQ , gefolgt von dem Wert ENIUQ . Das bewirkt, daß das Programm selbst — oder, wenn Sie so wollen, eine vollkommene Kopie davon ausgedruckt wird. Das ähnelt Quines Fassung des Satzes von Epimenides:
    „Ergibt eine Unwahrheit, wenn sein Zitat vorausgeht"
ergibt eine Unwahrheit, wenn sein Zitat vorausgeht.
    Es ist wichtig, sich darüber im klaren zu sein, daß die Zeichenkette, die in den letzten drei Zeilen des Programms in Anführungszeichen steht — d. h. der Wert von TEMPLATE — nie als Folge von Anweisungen aufgefaßt wird. Daß es eine ist, ist in gewissem Sinn nur ein Zufall. Wie schon gesagt, hätte es ebensogut DOPPEL - MOPPEL oder irgendeine andere Zeichenkette gewesen sein können. Der Witz des Schemas liegt darin, daß derselbe Text, wenn er in den ersten beiden Zeilen steht, tatsächlich als Programm behandelt wird (denn er steht nicht in Anführungszeichen). In diesem Programm fungiert also dieselbe Kette auf zwei verschiedenen Arten: erstens als Programm, zweitens als Daten. Das ist das Geheimnis selbstreproduzierender Programme und wie wir noch sehen werden, selbstreproduzierender Moleküle. Im übrigen ist es nützlich, ein selbst-reproduzierendes Gebilde als Selbst-Rep zu bezeichnen und in ähnlicher Weise jedes selbstbezügliche Gebilde als Selbst-Ref. Von jetzt an werde ich diese Ausdrücke gelegentlich verwenden.
    Das vorhergehende Programm ist ein elegantes Beispiel eines selbst-reproduzierenden Programms, geschrieben in einer Sprache, die nicht dazu entworfen wurde, Selbst-Reps besonders leicht formulieren zu können. Die Aufgabe mußte daher unter Verwendung jener Begriffe und Operationen gelöst werden, die wir als Teil der Sprache auffaßten, wie etwa das Wort QUOTE - MARK oder der Befehl PRINT . Nehmen wir jedoch an, es würde eine Sprache eigens zu dem Zweck entworfen, leicht Selbst-Reps schreiben zu können. Dann könnte man viel kürzere Selbst-Reps schreiben. Nehmen wir z. B. an, daß die Operation des Eniuqierens eine fest in der Sprache verankerte Eigenschaft sei und keiner Definition bedürfe (wie wir bei PRINT annahmen). Ein winziges Selbst-Rep wäre dann:
    ENIUQ [' ENIUQ '].
    Das ähnelt stark der

Weitere Kostenlose Bücher