TY - THES A1 - Ostermayer, Ludwig T1 - Integration of Prolog and Java with the Connector Architecture CAPJa T1 - Integration von Prolog und Java mit Hilfe der Connector Architecture CAPJa N2 - Modern software is often realized as a modular combination of subsystems for, e. g., knowledge management, visualization, verification, or the interaction with users. As a result, software libraries from possibly different programming languages have to work together. Even more complex the case is if different programming paradigms have to be combined. This type of diversification of programming languages and paradigms in just one software application can only be mastered by mechanisms for a seamless integration of the involved programming languages. However, the integration of the common logic programming language Prolog and the popular object-oriented programming language Java is complicated by various interoperability problems which stem on the one hand from the paradigmatic gap between the programming languages, and on the other hand, from the diversity of the available Prolog systems. The subject of the thesis is the investigation of novel mechanisms for the integration of logic programming in Prolog and object–oriented programming in Java. We are particularly interested in an object–oriented, uniform approach which is not specific to just one Prolog system. Therefore, we have first identified several important criteria for the seamless integration of Prolog and Java from the object–oriented perspective. The main contribution of the thesis is a novel integration framework called the Connector Architecture for Prolog and Java (CAPJa). The framework is completely implemented in Java and imposes no modifications to the Java Virtual Machine or Prolog. CAPJa provides a semi–automated mechanism for the integration of Prolog predicates into Java. For compact, readable, and object–oriented queries to Prolog, CAPJa exploits lambda expressions with conditional and relational operators in Java. The communication between Java and Prolog is based on a fully automated mapping of Java objects to Prolog terms, and vice versa. In Java, an extensible system of gateways provides connectivity with various Prolog system and, moreover, makes any connected Prolog system easily interchangeable, without major adaption in Java. N2 - Moderne Software ist oft modular zusammengesetzt aus Subsystemen zur Wissensverwaltung, Visualisierung, Verfikation oder Benutzerinteraktion. Dabei müssen Programmbibliotheken aus möglicherweise verschiedenen Programmiersprachen miteinander zusammenarbeiten. Noch komplizierter ist der Fall, wenn auch noch verschiedene Programmierparadigmen miteinander kombiniert werden. Diese Art der Diversifikation an Programmiersprachen und –paradigmen in nur einer Software kann nur von nahtlosen Integrationsmechansimen für die beteiligten Programmiersprachen gemeistert werden. Gerade die Einbindung der gängigen Logikprogrammiersprache Prolog und der populären objektorientierten Programmiersprache Java wird durch zahlreiche Kompatibilitätsprobleme erschwert, welche auf der einen Seite von paradigmatischen Unterschieden der beiden Programmiersprachen herrühren und auf der anderen Seite von der Vielfalt der erhältlichen Prologimplementierungen. Gegenstand dieser Arbeit ist die Untersuchung von neuartigen Mechanismen für die Zusammenführung von Logikprogrammierung in Prolog und objektorienter Programmierung in Java. Besonders interessiert uns dabei ein objektorientierter, einheitlicher Ansatz, der nicht auf eine konkrete Prologimplementierung festgelegt ist. Aus diesem Grund haben wir zunächst wichtige Kriterien für die nahtlose Integration von Prolog und Java aus der objetorientierten Sicht identifziert. Der Hauptbeitrag dieser Arbeit ist ein neuartiges Integrationssystems, welches Connector Architecture for Prolog and Java (CAPJa) heißt. Das System ist komplett in Java implementiert und benötigt keine Anpassungen der Java Virtual Machine oder Prolog. CAPJa stellt einen halbautomatischen Mechanismus zur Vernetzung von Prolog Prädikaten mit Java zur Verfügung. Für kompakte, lesbare und objektorientierte Anfragen an Prolog nutzt CAPJa Lambdaausdrücke mit logischen und relationalen Operatoren in Java. Die Kommunikation zwischen Java und Prolog basiert auf einer automatisierten Abbildung von Java Objekten auf Prolog Terme, und umgekehrt. In Java bietet ein erweiterbares System von Schnittstellen Konnektivität zu einer Vielzahl an Prologimplmentierung und macht darüber hinaus jede verbundene Prologimplementierung einfach austauschbar, und zwar ohne größere Anpassung in Java. KW - Logische Programmierung KW - Objektorientierte Programmierung KW - PROLOG KW - Java KW - Multi-Paradigm Programming KW - Logic Programming KW - Object-Oriented Programming KW - Multi-Paradigm Programming Framework Y1 - 2017 U6 - http://nbn-resolving.de/urn/resolver.pl?urn:nbn:de:bvb:20-opus-150713 ER -