Bitte benutzen Sie diese Referenz, um auf diese Ressource zu verweisen: doi:10.22028/D291-39687
Titel: LISPLOG : Beiträge zur LISP/PROLOG-Vereinheitlichung
VerfasserIn: Dahmen, Michael
Herr, Jürgen
Hinkelmann, Knut
Morgenstern, Harry
Sprache: Deutsch
Erscheinungsjahr: 1985
Erscheinungsort: Kaiserslautern
DDC-Sachgruppe: 004 Informatik
Dokumenttyp: Forschungsbericht (Report zu Forschungsprojekten)
Abstract: 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.
Link zu diesem Datensatz: urn:nbn:de:bsz:291--ds-396879
hdl:20.500.11880/35825
http://dx.doi.org/10.22028/D291-39687
Schriftenreihe: Memo SEKI : SEKI-Projekt / Deutsches Forschungszentrum für Künstliche Intelligenz, DFKI
Band: 85,10
Datum des Eintrags: 15-Mai-2023
Fakultät: SE - Sonstige Einrichtungen
Fachrichtung: SE - DFKI Deutsches Forschungszentrum für Künstliche Intelligenz
Professur: SE - Sonstige
Sammlung:SciDok - Der Wissenschaftsserver der Universität des Saarlandes



Alle Ressourcen in diesem Repository sind urheberrechtlich geschützt.