Options
2000
Presentation
Titel
Implementierung von built-in Constraints für endliche Wertebereiche in Minerva
Titel Supplements
Vortrag gehalten auf dem 14. Workshop Logische Programmierung. Würzburg, 26. - 28. Januar 2000
Abstract
Die logische Programmiersprache Minerva stellt durch ihre Java-Basis die Beziehung zwischen logisch-deklarativen Spezifikationen und internet-basierten Anwendungen her. Minerva erbt dabei von Java den plattformunabhängigen Lösungsansatz. Hier wird die Erweiterung von Minerva um einen Basis-Constraint-Solver beschrieben, durch den kombinatorisch komplexe Probleme nicht nur deklarativer beschrieben, sondern auch verteilt bearbeitet werden können. Minerva wurde dazu um arithmetische Constraints über endlichen Wertebereichen erweitert. Dabei wurde das in clp(FD) verwendete und bewährte Konzept der Constraintverarbeitung übernommen. Die Implementierung der low-level Constraints X in r erfolgte jedoch nicht in der Zielsprache Java, sondern auf Prolog-Ebene. Es wird lediglich eine eng begrenzte Schnittstelle (attributierte Variablen, vordefinierte Prädikate zur Behandlung von Constraintvariablen) vorausgesetzt und nicht in das System Minerva eingegriffen. Dadurch ist die Unabhängigkeit von Reimplementierungen von Minerva gewährleistet. Außerdem kann das Constraintsystem in anderen logischen Sprachen wiederverwertet werden, wenn dort eine entsprechende Schnittstelle implementiert wird.
;
The logic programming language Minerva combines logic, declarative specification with internet applications for it is implemented in Java. As well as Java, Minerva does not require any specific platform. In this paper we describe the extension of Minerva with a constraint solver. Thus complex combinatorial problems cannot only be described more declaratively, but can also be computed in distributed systems. The extension provides arithmetic constraints over finite domains for Minerva. The implementation is based on the well-known and tested concept of constraint processing of clp(FD). However, the implementation of the low-level X in r constraints is not performed in the target language Java, but on the Prolog level. Only a very restricted interface (attributed variables, predefined predicates for the handling of constraint variables) was used, so that the constraint solver does not interfere with the Minerva system. Thus independency of reimplementations of Minerva is ensured. Furthermore, the constraint system can be reused in other logic languages, if they provide the corresponding interface.
FIRST