10.4230/LIPICS.ICLP.2011.84
Eichberg, Michael
Michael
Eichberg
Compiling Prolog to Idiomatic Java
Schloss Dagstuhl – Leibniz-Zentrum für Informatik
2011
Article
Prolog
Compiling
Logic Programming
Object-oriented Programming
Gallagher, John P.
John P.
Gallagher
Gelfond, Michael
Michael
Gelfond
2011
2011-06-27
2011-06-27
2011-06-27
en
urn:nbn:de:0030-drops-31763
10.4230/LIPIcs.ICLP.2011
978-3-939897-31-6
1868-8969
10.4230/LIPIcs.ICLP.2011
LIPIcs, Volume 11, ICLP 2011
Technical Communications of the 27th International Conference on Logic Programming (ICLP'11)
2013
11
9
84
94
Schloss Dagstuhl – Leibniz-Zentrum für Informatik
Gallagher, John P.
John P.
Gallagher
Gelfond, Michael
Michael
Gelfond
1868-8969
Leibniz International Proceedings in Informatics (LIPIcs)
2011
11
Schloss Dagstuhl – Leibniz-Zentrum für Informatik
11 pages
1033114 bytes
application/pdf
Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported license
info:eu-repo/semantics/openAccess
Today, Prolog is often used to solve well-defined, domain-specific problems that are part of larger applications. In such cases, a tight integration of the Prolog program and the rest of the application, which is commonly written in a different language, is necessary. One common approach is to compile the Prolog code to (native) code in the target language. In this case, the effort necessary to build, test and deploy the final application is reduced. However, most of the approaches that achieve reasonable performance compile Prolog to
object-oriented code that relies on some kind of virtual machine (VM). These VMs are libraries implemented in the target language and implement Prolog's execution semantics. This adds a significant layer to the object-oriented program and results in code that does not look and feel native to developers of object-oriented programs. Further, if Prolog's execution semantics is implemented as a library the potential of modern runtime environments for object-oriented
programs, such as the Java Virtual Machine, to effectively optimize the program is more limited. In this paper, we report on our approach to compile Prolog to high-level, idiomatic object-oriented
Java code. The generated Java code closely resembles code written by Java developers and is effectively optimized by the Java Virtual Machine.
LIPIcs, Vol. 11, Technical Communications of the 27th International Conference on Logic Programming (ICLP'11), pages 84-94