Karl Vogel GEM Programmierung im Modula-2 Romanshorn 1988 AXIS Verlag 120 Seiten DM 25,-
Wie der Titel schon sagt, ist das Buch für Modula-2-Programmierer gedacht, die GEM-Applikationen schreiben wollen. So orientiert sich die Darstellung des AES und VDI an den Modulen von TDI-Modula-2. Vorausgesetzt wird die Beherrschung der Sprache und des TDI-Systems.
Im ersten Kapitel wird zunächst eine übersichtliche Einführung in das GEM-Konzept gegeben. Da für richtige GEM-Programme unerläßlich, beschreibt Vogel dann die Benutzung des Resource-Construction-Sets im zweiten Abschnitt, um daraufhin mit den Alertboxen (die er seltsamerweise “Sofortboxen" nennt) in die eigentlichen GEM-Routinen einzusteigen. Es schließen sich die Dialogboxen mit besonderer Berücksichtigung der TEDinfos an.
Im vierten Kapitel findet sich der nächste Bestandteil des AES wieder - die Menüs. Von der Erstellung eines Menübaumes kommt der Autor zur eigentlichen Menüprogrammierung und schneidet hier auch schon kurz den Event-Manager an.
Als dritter AES-Bestandteil belegen die Fenster das nächste Kapitel. Dabei kommen alle wichtigen Prozeduren von der Abfrage des Bildschirmhandles bis zum eigentlichen Öffnen des Fensters und den Fenster-Events vor. Bei den Routinen unterläuft dem Autor allerdings ein kleiner Fehler, denn ein Programm braucht nach einem WindowOpen keineswegs die Fensterfläche zu löschen, dafür erzeugt GEM eine Redraw-Mitteilung.
Gut gelungen sind allerdings die nützlichen Hilfsroutinen für Fenster, die, in ein kleines Modul gepackt, praktisch brauchbar sind. Ebenfalls nützlich ist die Beschreibung der Fensterroutinen aus dem TDI-Toolkit, da es hierfür kein richtiges Handbuch gibt (s. ST-Computer 11/86). Abschließend wird noch kurz auf einige der elementaren VDI-Routinen eingegangen, die bei der GEM-Programmie-rung notwendig sind.
Der Autor wird dem selbstgestellten Anspruch gerecht, ein kleines Lehrbuch zu schreiben, das das Wesentliche der GEM-Programmierung erläutert. Der Text ist didaktisch gut aufgebaut und angenehm zu lesen. Die Beispielprogramme sind passend ausgewählt und leiten weiter zu eigenen Experimenten. Allerdings hätte ich mir an einigen Stellen mehr Informationen gewünscht. 120 Seiten reichen eben nur für eine Einführung; allerdings verweist Vogel auch in der Einleitung auf weiterführende Literatur. Im Zeitalter der halbautomatischen Registererstellung hätte das Buch auch einen Index verdient und sollte nicht abrupt mit einer Abbildung der VDI-Füllmuster enden.
“GEM-Programmierung in Modula-2” ist dennoch eine gelungene Einführung für den Einsteiger, der sich mit dem TDI-Modula-Compiler gerüstet auf den Atari ST stürzen will und ein auf sein System zugeschnittenes Werk sucht.
Robert Tolksdorf
Ivan Bratko PROLOG Programmierung für künstliche Intelligenz Addison Wesley Verlag
Dieses Buch ist die deutsche Übersetzung der englischen Originalausgabe Prolog Programming for Artificial Intelligence, die 1986 im gleichen Verlag erschienen ist. Und dieses gehörte zu meiner Lieblingslektüre im Bereich der KI, weil es einerseits Grundlagen der Sprache PROLOG vermittelt, andererseits aber auch recht komplexe Anwendungen bereithält. Man kann dem Übersetzer bestätigen, daß dem Buch nichts von der Faszination des Originals verlorengegangen ist.
Der erste Teil des Buches beschäftigt sich mit der Arbeitsweise des Prolog-Interpreters. Wohltuend registriert der Neuling, daß die Ausführungen hier und im ganzen Buch nicht akademisch trocken dargeboten werden, sondern reichlich mit Beispielen garniert sind. Zur Selbstkontrolle finden sich nach jedem Kapitel Übungsaufgaben, deren Lösung der Leser am Ende des Buches in einem Anhang findet. Damit ist das Buch auch Autodidakten zum Selbststudium zu empfehlen. In sieben Kapiteln mit über 200 Seiten erhält der Leser einen Überblick über Prolog, erfährt etwas über Instanzierung und Matching (der Autor vermeidet den aus der Logik stammenden Begriff Unifikation), lernt mit Listen umzugehen, übt den Gebrauch von Strukturen wird mit der Kontrolle des Backtracking vertraut gemacht, der Anfängern immer wieder Schwierigkeiten bereitet. Kapitel über Ein-Ausgabe, vordefinierte Prozeduren und Programmierstil und -technik runden den ersten Teil ab. Schon in diesem Teil finden sich so interessante Programme wie das Acht-Damen-Problem oder die Simulation eines nichtdeterministischen Automaten. So richtig interessant wird es dann im zweiten Teil.
Der zweite Teil des Buches trägt die Überschrift Prolog in der künstlichen Intelligenz und deutet damit an, daß wir uns dem Kern des Buches nähern. In 8 Kapiteln wird der Leser mit Problemen vertraut gemacht, die in konventionellen Programmiersprachen nicht oder nur schwer zu lösen sind. Die Themenbandbreite reicht von einfachen Operationen auf Datenstrukturen über heuristische Suchverfahren und Expertensysteme bis hin zum musterorientierten Programmieren. Dieses Kapitel hat mich am meisten fasziniert, wird hier doch ein Programm diskutiert, das in der Lage ist, logische Beweise selbständig auszuführen.
Der Inhalt jeden Kapitels wird am Schluß nochmals stichwortartig zusammengefaßt. Eine wahre Fundgrube ist auch die dort gegebene Bibliographie, die dem Leser die Möglichkeit gibt, sich mit der Originalliteratur auseinanderzusetzen. Der Autor des Buches verwendet die DECIO-Syntax. Dieser Dialekt ist der einzige für den ATARI ST verfügbare PROLOG-Dialekt. Damit dürfte es den Besitzern des TOY-Prologs aus der PD und des SALIX-Prologs sowie des MPROLOGs problemlos möglich sein, den Ausführungen des Autors zu folgen. Dieses Buch ist wegen der klaren Gliederung, den vielen instruktiven Beispielen und der interessanten Thematik jedem wärmstens zu empfehlen, der sich mit dem Gedanken trägt, in den Problemkreis der KI oder PROLOG einzutreten. Der zweite Teil des Buches dürfte allerdings auch erfahrenen PROLOG-Anwendem zumindest Interesse abverlangen.
Dr. K.Sarnow