179 research outputs found

    LISPLOG : Beiträge zur LISP/PROLOG-Vereinheitlichung

    Get PDF
    This paper includes three sections, discussing in detail extensions and supplementary tools for the LISPLOG system. The first contribution by Michael Dahmen discusses a translator from CPROLOG to LISPLOG, which effects a partial transformation of PROLOG-programs. This transformation is mainly based upon pattern matching, comparing structures of the program to be transformed with given patterns and substituting structures of the target language for them. This translator is written in PROLOG, which is suited very well for this task because of its built-in capability for unification. Therefore this translator is an example of a task, which is simply and naturally solvable in PROLOG. The second contribution by Knut Hinkelmann and Harry Morgenstern discusses the translation of programs written in LISPLOG to standard PROLOG. In order to translate a LISPLOG program into pure PROLOG, it is necessary to flatten nested LISP function calls into a conjunction of relationcalls and to translate the corresponding LISP functions into PROLOG clauses. The flattening of a nested LISP function call is treated in the first part. The second part treats the translation of a LISP function into a conjunction of PROLOG clauses using the syntax of LISPLOG. The LISP functions are translated into pure LISPLOG. These two contributions describe tools which enable developers of PROLOG programs to vary between the implementations of CPROLOG and LISPLOG without too much effort. The third contribution by Juergen Herr treats the compilation of LISPLOG clauses into LISP functions and breadth-first search as an alternative control structure for LISPLOG. The first part discusses advantages and disadvantages of breadth-first search and introduces an implementation. The discussion of possible constructions in clause heads and the development of concepts for translating LISPLOG clauses are the main themes in the second part. Furthermore an implementation of some of these concepts is described in the form of a hornclause compiler written in LISP, which assembles predefined function patterns.Dieses Memo enthaelt drei Beitraege, die Erweiterungen und ergaenzende Werkzeuge des LISPLOG-Systems behandeln. Der erste Beitrag von Michael Dahmen behandelt einen Translator von CPROLOG naoh LISPLOG, der eine partielle Transformation von PROLOG—Programmen vornimmt. Diese Transformation ist weitgehend "Pattern-basiert” d.h. die Strukturen des zu transformierenden Programms werden mit vorgegebenen Mustern verglichen und durch Strukturen der Zielsprache substituiert. Dieser Translator wurde in PROLOG geschrieben, denn PROLOG ist wegen der eingebauten Faehigkeit zum Mustervergleich hierfuer besonders gut geeignet. Der Translator ist daher auch ein Beispiel fuer eine Aufgabe, die sich in PROLOG besonders einfach und natuerlich loesen laesst.. Der zweite Beitrag von Knut Hinkelmann und Harry Morgenstern beschaeftigt sich mit der Uebersetzung eines LISPLOG-Programmes in Standard-PROLOG. Will man ein LISPLOG-Programm in puree PROLOG uebersetzen, muss man die geschachtelten LISP-Funktionaufrufe in Konjunktionen von Relationsaufrufen abflachen und die zugehoerigen Definitionen der LISP-Funktionen in PROLOG-Klauseln uebersetzen. Die Abflachung eines Aufrufs einer geschachtelten LISP-Funktion wird im ersten Teil behandelt. Im zweiten Teil geht es um die Uebersetzung der Definition einer LISP-Funktion in_ eine Konjunktion von PROLOG-Klauseln. Fuer die PROLOG-Klauseln wird die LISPLOG-Syntax benutzt. Die LISP-Funktion wird also nach LISPLOG ohne LISP—Durchgriff uebersetzt. Diese beiden Beitraege beschreiben Werkzeuge, die es dem Entwicker von PROLOG-Programmen ermoeglichen, mit weitgehender Systemunterstuetzung zwischen der CPROLOG- und LISPLOG-Implementierung zu wechseln. Der dritte Beitrag von Juergen Herr beschaeftigt sich mit Breitensuche als alternativer Kontrollstruktur fuer LISPLOG, und der Kompilation von LISPLOG-Klauseln nach LISP. Im ersten Teil werden Vor— und Nachteile dieser Kontrollstruktur angesprochen sowie eine Implementierung vorgestellt und erlauetert. Im zweiten Teil dieses Beitrags werden erlaubte Konstrukte in Klauselkoepfen besprochen und Konzepte zur Uebersetzung von LISPLOG-Klauseln entwickelt. Weiterhin wird die Implementierung eines Teils dieser Konzepte in LISP beschrieben

    Untersuchung maschineller Lernverfahren und heuristischer Methoden im Hinblick auf deren Kombination zur Unterstützung eines Chart-Parsers

    Get PDF
    corecore