Institut für Computersprachen
Programmiersprachen und Übersetzer
| Diplomarbeit | |
| Titel | Meta-Interpreter und Sprachverstehen |
| Autor | Feßler, Leonhard |
| Erscheinungsjahr | 1990 |
| Abstract | Diese Arbeit beschäftigt sich mit Meta-Interpretern in Prolog, die als Entwicklungswerkzeug für Sprachverstehende Systeme vorgestellt werden. Meta -Interpreter definieren Prolog-ähnliche Sprachen. Die modulare Trennung zwischen deklarativer Bedeutung dieser Sprachen und der im Interpreter realisierten prozeduralen Semantik kommt typischen Anforderungen der AI-Programmierung entgegen. Um das schlechte Laufzeitverhalten von Interpretern zu verbessern, entwickelte Gustaf Neumann das Verfahren der Meta-Interpreter-gesteuerten Compilation. Dabei wird ein Meta-Interpreter strukturell analysiert und in einen Compiler transformiert. Der Compiler ist in der Lage, ein Quellprogramm, das vorher interpretiert werden mußte, nach Prolog zu übersetzen. Die Eliminierng der Interpretationsschicht und die Ausführung von Verarbeitungsschritten des Interpreters bereits zur Übersetzungszeit kann die Laufzeiteigenschaften eines Programmes wesentlich verbessern. Diese Technik wird mit anderen optimierenden Programmtransformationen verglichen und an Hand einer von Gustaf Neumann übernommenen Implementierung beschrieben. Der zweite Teil dieser Arbeit beschreibt den Entwurf Sprachverstehender Systeme und die Funktionellen Anforderungen an Grammatikformalismen. Die wichtigsten Logischen Grammatiken werden miteinander verglichen. Die von Michael McCord entwickelte Modular Logic Grammar wird dann als Meta-Interpreter realisiert. Die Implementierung eines funktionstüchtigen Frage/Antwort-Systems, das auf McCords Systemen "MOD" (1982) und "MODL" (1986) aufbaut, wird durch die Verwendung eines Interpreters (anstelle eines Compilers, wie ihn McCord verwendet) vereinfacht: prototyping und debugging werden in der Entwicklungsphase beschleunigt. Die mögliche Verzahnung von syntaktischer und semantischer Analyse durch Modifikation der Interpretationsschicht zeigt die Mächtigkeit der Metaprogrammierung. Schließlich wird Gustaf Neumanns Compilergenerator auf den Interpreter angewendet und die Regelbasis nach Prolog übersetzt. So verbinden sich die vorteilhaften Entwicklungseigenschaften des Interpreters mit den besseren Laufzeiteigenschaften eines Compilers. |
| Status | Verfügbar |