JAXenter: In welchen Bereichen wird Prolog heute bevorzugt eingesetzt?
Günter Kniesel: Wir selbst verwenden seit vielen Jahren Prolog indirekt als ein ideales Werkzeug zur Softwareanalyse und -Transformation. Basierend auf Prolog bietet JTransformer Softwareentwicklern die Möglichkeit, mit wenig Entwicklungsaufwand komplexe Analysen von Programmen zu definieren. Das reicht von der einfachen Überprüfung mannigfaltiger Abhängigkeitsbeziehungen zwischen Programmelementen über die automatisierte Entdeckung von "bad smells", die als Refactoring-Hinweise dienen, bis zur Entdeckung beliebig komplexer Strukturen, z.B. von Entwurfsmustern, die das Verständnis bestehender Programme oder die Bewertung ihrer Design-Qualitäten (bzw. Probleme) ermöglichen.
Das besondere an JTransformer und der aktuellen Weiterentwicklung zu einer sprachunabhängigen Version (StarTransformer) ist, dass Analyseergebnisse nahtlos als Eingabe von Transformationen verwendet werden können, die erkannte Probleme direkt korrigieren. Das zentrale Konzept, das hierfür in JTransformer umgesetzt wird, sind die "bedingten Transformationen".
Üblicherweise werden sie nach ihrem englischen Namen, conditional transformations, einfach als CTs abgekürzt. CTs bilden eine auf Logik und Funktionen basierende, deklarative Modelltransformationssprache im Sinne der OMG / MDA. Ihre Konzeption beruht somit auf den gleichen Grundlagen wie Prolog, und dementsprechend war Prolog für uns auch die naheliegende Implementierungssprache.
JAXenter: Wie ausgereift ist die derzeit zur Verfügung stehende Codebasis für das ELF-Projekt?
Günter Kniesel: Ich kann aus eigener Erfahrung nur zu dem Stand des PDT etwas sagen. Das ist zurzeit eine bereits recht ausgereifte und vielfach genutzte Anbindung von SWI-Prolog an die Eclipse-Plattform.
Es bietet einerseits eine Schnittstelle, um aus Java-Programmen heraus Anfragen an Prolog-Prozesse zu stellen und Ergebnisse dann in Java weiter verarbeiten zu können. Andererseits ist es eine nahtlos in Eclipse eingebettete Entwicklungsumgebung für Prolog mit Navigator, Editor, Outline und Prolog Console, über die man auch interaktiv Anfragen an Prolog-Prozesse stellen kann.
An manchen Stellen gibt es jedoch noch klare Verbesserungsmöglichkeiten hinsichtlich Stabilität, Ergonomie und weiterer Funktionalitäten. Daran wird aber laufend weiter gearbeitet.
Downloads und ein Tutorial findet man unter http://sewiki.iai.uni-bonn.de/research/pdt/.
JAXenter: Wie sieht die weitere Planung aus? Wann kann man mit einem ersten Release rechnen?
Günter Kniesel: Da möchte ich noch nicht vorgreifen. Wir werden in bester Eclipse-Tradition jederzeit für Offenheit des Projektes sorgen und dementsprechend solche Informationen auf den offiziellen Webseiten zur Verfügung stellen, sobald wir intern entsprechende Entscheidungen getroffen haben.
JAXenter: Vielen Dank für dieses Interview!



