New Generation Computing
January 2015
tuProlog is a multi-paradigm & multi-platform Prolog system explicitly designed to promote the seamless integration between the logic/declarative and the object-oriented imperative paradigms, enabling Prolog to inter-operate with Java (and other languages) easily and naturally. The recent inclusion of key functional programming concepts and constructs in Java 8 opens the way to adding one further dimension to tuProlog’s multi-paradigm approach, enabling Prolog to manipulate and execute Java 8 lambdas (and related constructs) natively. Therefore, in this paper we discuss how such an integration can be obtained both conceptually and architecturally, moving from the key requirements down to the implementation. To this end, after recalling the tuProlog multi-paradigm framework and the basics of the Java 8 constructs, we first discuss a general technique that exploits the built-in Java compiler via the combined use of a dynamic proxy and a dynamic class generator, and then show its practical application to the tuProlog case. The new Java/tuProlog library, built on top of this technology, is then presented, from syntax to practical programming examples. The impact on tuProlog.NET is also briefly discussed, as well as the next expected steps.
journal or series
New Generation Computing
(NGC)