Vier Programmiersprachen im Überblick

13.02.1987

Im Vergleich der vier Programmiersprachen hinsichtlich ihrer Eignung für die Implementierung von Expertensystemen schneidet "C" am schlechtesten ab. Das ist nicht besonders verwunderlich; denn sie wurde als prozedurale Sprache konzipiert und ist deshalb auf die Implementierung von Algorithmen ausgerichtet.

Natürlich lassen sich damit trotzdem Expertensysteme implementieren. Aber bei der Modellierung der genannten Wissensdarstellungen und der darauf abgestimmten Verfahren zur Wissensherleitung tauchen erhebliche Schwierigkeiten auf. Sie zu umgeben, ist mit großen Einbußen an Laufzeit und Speicherbedarf verbunden. Viel gravierender als diese Nachteile sind jedoch die konzeptuellen Schwierigkeiten, die beim Implementierungsentwurf zutage treten.

"Smalltalk" unterstützt in erster Linie die Darstellung und Herleitung von Wissen nach dem Modell der Rahmen und semantischen Netze. Rahmen lassen sich bequem in Objekten und Klassen abbilden. Auch die Nachbildung von Rahmen-Hierarchien ist durch die hierarchische Anordnung von Klassen direkt nachvollziehbar. Allerdings trifft das nur auf baumartige Hierarchien zu, da "Smalltalk" eben nur diese Anordnung von Klassen vorsieht. Viele der auf dem Markt befindlichen Werkzeuge für die Erstellung von Expertensystemen (zum Beispiel "FRL", "KEE", "KL-ONE", "Krypton", "Flavors", "Loops" und "Ross") sind nach den Prinzipien der objektorientierten Programmierung aufgebaut.

"Prolog" ist von seiner ganzen Konzeption her auf die Erstellung wissensbasierter Systeme ausgerichtet. Das kommt in besonderem Maße dadurch zum Ausdruck, daß dem Entwickler eines Expertensystems die Erstellung einer Inierenzmaschine erspart bleibt. Sie ist bereits fester Bestandteil vom"Prolog". Es ist deshalb nicht verwunderlich, daß diese Sprache in immer stärkerem Maße Anwendung beim, Bau von Expertensystemen findet. Darüber hinaus hat die Grundlage der logikorientierten Programmierung Eingang in einige andere Werkzeuge für die Implementierung von Expertensystemen wie etwa "Alice", "Apes", "Aplicot" und "Duck" gefunden.

"Lisp" ist unbestritten die, flexibelste der hier betrachteten Programmlersprachen. Es bereitet keine Mühe, die genannten Formen der Wissensdarstellung mittels Listen zu erfassen. Auch die Implementierung der jeweils zugehörigen Wissensherleitung ist nicht schwer. Nichtsdestowentger ist sie keine wissensbasierte Programmiersprache, weil alle der in Abbildung 4 enthaltenen Bestandteile von Expertensystemen explizit entwickelt und erstellt werden müssen. Die gute Eignung von "Lisp" für einige Bereiche der Svstemimplementierung zeigt sich in der Tatsache, daß sehr viele auf den Bau von Expertensystemen zugeschnittene Werkzeuge darin implementiert wurden.