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:
ihr Ziel. Bei Programmiersprachen war es im allgemeinen die Regel, daß es eine sehr strikte Syntax gab, die zu jeder Zeit hundertprozentig einzuhalten war. Doppeldeutige Wörter und Konstruktionen gab es nicht. Interessanterweise ist das gedruckte Äquivalent des Hustens (d. h. ein unwesentlicher oder irrelevanter Kommentar) zulässig, aber nur, wenn er vorher durch ein Schlüsselwort (z. B. COMMENT = Kommentar) angekündigt und durch ein anderes Schlüsselwort (z. B. ein Semikolon) beendet wird. Diese kleine Geste zugunsten der Flexibilität hat ironischerweise ihre eigene kleine Falle: Wenn ein Semikolon (oder ein anderes für den Abschluß des Kommentars verwendete Wort) innerhalb eines Kommentars gebraucht wird und das Übersetzungsprogramm dieses Semikolon als Zeichen dafür interpretiert, daß der Kommentar zu Ende ist, dann wird's chaotisch.
    Wenn eine Prozedur namens EINSICHT definiert und dann siebzehnmal im Programm aufgerufen worden ist, und das achtzehnte Mal falsch als EINSIHCT buchstabiert wird, dann wehe dem Programmierer. Der Compiler wird stocken und eine starre, mitleidlose Fehlermeldung ausdrucken, da er noch nie von EINSIHCT gehört hat. Wenn ein solcher Fehler von einem Computer entdeckt worden ist, versucht der Compiler oft weiterzumachen, aber wegen seines Mangels an Einsicht hat er nicht begriffen, was der Programmierer gemeint hat. Er kann ja sehr wohl vermuten, daß etwas ganz anderes gemeint war, und aufgrund dieser irrtümlichen Annahme weitermachen. Dann wird eine lange Reihe von Fehlermeldungen das restliche Programm würzen, weil der Compiler — nicht der Programmierer — durcheinander geriet. Man stelle sich das Chaos vor, das entstünde, wenn ein Simultandolmetscher für Deutsch und Russisch eine französische Wendung im Deutschen hörte und nun begänne, den ganzen Rest des deutschen Textes als Französisch zu übersetzen. Compiler verlieren sich oft in so mitleiderregender Weise. C'est la vie.
    Vielleicht klingt das wie ein Verdammungsurteil für den Computer, aber so ist es nicht gemeint. In einem gewissen Sinn mußte es so kommen. Wenn man einen Augenblick darüber nachdenkt, wofür man denn Computer gebraucht, wird man feststellen, daß es sich um die Ausführung klarer und präziser Aufgaben handelt, die für den Menschen zu komplex sind. Wenn der Computer zuverlässig sein soll, dann ist es notwendig, daß er ohne die geringste Möglichkeit einer Doppeldeutigkeit versteht, was er tun soll. Auch ist es notwendig, daß er nicht mehr und nicht weniger tut, als ihm ausdrücklich befohlen wurde. Wenn der Programmierer irgendwo im Verborgenen ein Programm hat, dessen Zweck es ist, zu "erraten“, was der Programmierer wünscht oder meint, dann kann man sich sehr wohl vorstellen, daß der Programmierer seine Aufgabe mitzuteilen versucht und völlig mißverstanden wird. Es ist also wichtig, daß das Programm hoher Stufe zwar für den Menschen bequem, aber doch unzweideutig und präzise sein sollte.
Den Programmierer überholen
    Nun ist es möglich, eine Programmiersprache — und ein Programm, das sie in tiefere Stufen übersetzt — zu entwerfen, die ein gewisses Maß an Ungenauigkeit gestattet. Man kann das so ausdrücken: Ein Übersetzer für solch eine Programmiersprache versucht, Dingen einen Sinn zu verleihen, die „außerhalb der Sprachregeln geschehen. Wenn aber eine Sprache gewisse „Überschreitungen“ zuläßt, dann sind es nicht mehr wirkliche Überschreitungen, weil ihnen ja die Regeln Einlaß gewährt haben. Wenn ein Programmierer sich dessen bewußt ist, daß er gewisse Arten von Orthographiefehlern machen kann, dann kann er diese Eigenschaft der Sprache mit Absicht benutzen im Bewußtsein, daß er in Wirklichkeit dem äußeren Anschein zum Trotz innerhalb der starren Regeln der Sprache operiert hat. In anderen Worten: wenn der Benutzer alle Möglichkeiten dieser Flexibilität kennt, die für seine Bequemlichkeit in den Übersetzer einprogrammiert sind, kennt er die Grenze, die er nicht überschreiten darf, und deshalb wird ihm der Übersetzer noch immer starr und unflexibel vorkommen, obgleich er ihm viel größere Freiheit gestattet als frühere Varianten der Sprache, die die „automatische Kompensation für menschliche Fehler“ nicht einschloß.
    Bei „Gummi“-Sprachen dieser Art gibt es offensichtlich zwei Möglichkeiten: 1) Dem Benutzer ist die eingebaute Flexibilität der Sprache und des Übersetzers bekannt, und 2) sie ist es nicht. Im ersten Fall läßt

Weitere Kostenlose Bücher