Gödel, Escher, Bach - ein Endloses Geflochtenes Band
sich noch immer die Sprache für die genaue Übermittlung von Programmen verwenden, weil der Programmierer voraussagen kann, wie der Computer das Programm interpretieren wird, das er in dieser Sprache schreibt. Im zweiten Fall gibt es verborgene Eigenschaften, die Dinge tun mögen, die nicht voraussagbar sind (vom Standpunkt des Benutzers, der ja die Vorgänge im Inneren des Übersetzers nicht kennt). Das kann zu einer groben Fehlinterpretation des Programms führen, so daß also eine solche Sprache für die Zwecke untauglich ist, für die Computer wegen ihrer Geschwindigkeit und Zuverlässigkeit hauptsächlich Verwendung finden.
Es gibt aber noch eine dritte Möglichkeit: 3) Dem Benutzer sind die eingebauten Flexibilitäten der Sprache und ihres Übersetzers bekannt, aber es gibt ihrer so viele und sie wirken in einer so komplexen Weise zusammen, daß sich nicht sagen läßt, wie sein Programm interpretiert werden wird. Das kann sehr wohl auf die Person zutreffen, die das Übersetzungsprogramm geschrieben hat; sicher kennt diese das Programm so gut wie sonst niemand — aber sie ist noch immer nicht in der Lage vorauszusagen, wie es auf eine bestimmte ungewöhnliche Konstruktion reagieren wird.
Heute ist eines der Hauptgebiete der Erforschung der Artifiziellen Intelligenz das automatische Programmieren, das sich mit der Entwicklung von Sprachen noch höherer Stufe beschäftigt — Sprachen, deren Übersetzer so gewitzt sind, daß sie zumindest einige der folgenden beeindruckenden Dinge verrichten können: anhand von Beispielen verallgemeinern, gewisse Druck- und Grammatikfehler berichtigen, versuchen, den Sinn doppeldeutiger Beschreibungen zu verstehen, versuchen, die Absichten des Benutzers mit Hilfe eines primitiven Benutzermodells zu erraten, Fragen stellen, wenn Dinge unklar sind, die deutsche Sprache gebrauchen, usw. Dabei hofft man, auf dem Hochseil zwischen Verläßlichkeit und Flexibilität die Balance halten zu können.
Fortschritte in AI sind Fortschritte der Sprache
Es ist auffällig, wie eng die Verbindung zwischen Fortschritt in der Computerwissenschaft (im besonderen bei der Artifiziellen Intelligenz) und der Entwicklung neuer Sprachen ist. Im vergangenen Jahrzehnt hat sich ein deutlicher Trend abgezeichnet: neue Entdeckungen in neuen Sprachen zu konsolidieren. Ein Schlüssel zum Verständnis und zur Schaffung von Intelligenz liegt in der fortwährenden Weiterentwicklung und Verfeinerung der Sprachen, mit denen Prozesse der Symbolmanipulation beschrieben werden können. Heute gibt es wohl drei oder vier Dutzend Experimentalsprachen, die ausschließlich für AI-Forschung entwickelt wurden. Wichtig ist, zu erkennen, daß jedes in einer dieser Sprachen geschriebene Programm sich prinzipiell in Sprachen niedrigerer Stufe programmieren läßt, aber für einen Menschen bedürfte das einer außerordentlichen Anstrengung, und das so entstandene Programm wäre so lang, daß es die menschlichen Möglichkeiten überstiege. Es ist nicht so, daß jede höhere Stufe das Potential des Computers erweitert; sein volles Potential existiert bereits in seiner Sammlung von Befehlen in der Maschinensprache. Vielmehr weisen die neuen Begriffe in einer Sprache hoher Stufe ihrem ganzen Wesen nach auf neue Richtungen und Perspektiven hin.
Der „Raum“ aller möglichen Programme ist so riesig, daß niemand gefühlsmäßig wird sagen können, was möglich ist. Jede Sprache höherer Stufe eignet sich natürlich dazu, gewisse Bereiche des „Programmierungsraums“ zu erforschen, und so wird der Programmierer, indem er sich dieser Sprache bedient, in diese Bereiche des „Programmierungsraums“ geschleust. Die Sprache zwingt ihn nicht, Programme eines bestimmten Typus zu schreiben, aber sie erleichtert es ihm, gewisse Dinge zu tun. Begriffsnähe und ein sanfter Schubs — das ist oft alles, was für eine bedeutende Entdeckung nötig ist — und das ist der Grund für den Drang nach Sprachen immer höherer Stufe.
Programmieren in verschiedenen Sprachen ist wie Komponieren in verschiedenen Tonarten, besonders wenn man an der Tastatur arbeitet. Wenn man Stücke in ver-
Abb. 59 . Zur Erzeugung von intelligenten Programmen muß man eine Reihe von Hardware- und Software-Ebenen aufbauen, so daß einem die Langeweile erspart bleibt alles nur auf der untersten Ebene zu sehen. Beschreibungen eines Vorgangs auf verschiedenen Ebenen werden sich sehr verschieden anhören, wobei nur die oberste genügend geballt ist, um für uns
Weitere Kostenlose Bücher