Donnerstag, 24. Mai 2012


Artikel

März 2010 | Artikel

„Die Mächtigkeit und Eleganz der logischen Programmierung für Java-Entwickler“

(Link zum Artikel: http://www.createordie.de/jaxenter//002910)

Das Eclipse Logic Framework (ELF) verbindet Prolog und Java

  • Teilen
  • kommentieren
  • empfehlen
  • Bookmark and Share
Mit dem neu vorgeschlagenen Eclipse-Projekt "Eclipse Logic Framework (ELF)" soll auf eclipse.org eine komplette Entwicklungs- und Runtime-Umgebung für die logische Programmiersprache Prolog (PROgramming LOGic) entstehen. Warum ELF für Java-Programmierer neue Wege ins Semantic Web eröffnet, klärt JAXenter in einem Gespräch mit ELF-Projekt-Leiter Dr. Günter Kniesel von der Universität Bonn.
Teil 1   Teil 2   

JAXenter: Vor kurzem wurde das Eclipse Logic Framework (ELF) als neues Eclipse-Projekt vorgeschlagen. Was ist das Ziel dieses Projekts?

Günter Kniesel: Das Projekt hat eigentlich zwei unabhängige aber sich gegenseitig ergänzende Ziele. Zum einen ist es die Fortführung des schon seit 2003 an der Universität Bonn entwickelten "Prolog Development Tool" (PDT), das sich zum Ziel gesetzt hatte, Prolog-Programmierern eine Entwicklungsumgebung zur Verfügung zu stellen, die all die Unterstützung bietet, die man in Eclipse gewohnt ist.

Das ist durchaus ein sehr hohes Ziel, denn Prolog ist wegen seiner für Java-Programmierer ungewöhnlich dynamischen Konzepte (keine statische Typisierung, extrem mächtige Metaprogrammierungsfähigkeiten, u.v.m.) nicht nur in der Lage, Probleme, die in Java mit viel Aufwand verbunden sind, sehr elegant zu lösen, sondern auch eine echte Herausforderung für jegliche statische Analysen. Somit sind z.B. Refactorings für Prolog sehr viel schwerer zu realisieren, da allein schon die Frage, welches Stück des Programms Daten und welches einen Aufruf darstellt, nicht anhand einfacher syntaktischer Kriterien entschieden werden kann.

In diesem Bereich hat das Projekt sich zum Ziel gesetzt, die bereits jetzt vom PDT für das freie und plattformunabhängige SWI-Prolog (swi-prolog.org) zur Verfügung gestellte Entwicklungsumgebung und die Anbindung von Prolog an Java so zu verallgemeinern, dass sie mit beliebigen existierenden Prolog-Laufzeitsystemen verwendet werden kann.

Das dazu komplementäre zweite Ziel ist die Entwicklung einer hybriden Sprache, die Konzepte logischer Programmierung in Java einbettet und somit Java-Programmierern die Möglichkeit gibt, Prolog-artigen Code nahtlos in ihre Programme einzubetten. Hierzu ist der erste Schritt die Anpassung und Weiterentwicklung des an der Universität Kobe entwickelten Prolog-zu-Java-Übersetzers, der Prolog-Programme auf der JVM lauffähig macht.

JAXenter: Sie beschreiben die Möglichkeit, Prolog-Programme auf der Java Virtual Machine auszuführen. Welche Vorteile bringt dies für den Prolog-, welche für den Java-Entwickler?

Günter Kniesel: Das Ziel ist vor allem, Java-Entwicklern zu helfen, sich die Mächtigkeit und Eleganz der logischen Programmierung dort zunutze machen zu können, wo die zu lösenden Probleme von ihrer Natur her sehr viel einfacher deklarativ als imperativ angegangen werden können. Die Ontologien, die im Bereich des Semantischen Web von zentraler Bedeutung sind, sind inhärent Logik-basiert. Somit ist das Semantic Web ein Paradebeispiel für eine riesige Anwendungsdomäne, in der vieles sich fast 1:1 auf eine Logik-basierte Sprache abbilden lässt, während es in Java Klimmzüge erfordert, die den eigentlichen Kern des Problems im Rauschen der objektorientierten Modellierung völlig untergehen lassen.

Teil 1   Teil 2   

Kommentare