Featherweight Java: a minimal core calculus for Java and GJ
ACM Transactions on Programming Languages and Systems (TOPLAS)
Object-Oriented Computations in Logic Programming
ECOOP '94 Proceedings of the 8th European Conference on Object-Oriented Programming
Java(TM) Language Specification, The (3rd Edition) (Java (Addison-Wesley))
Java(TM) Language Specification, The (3rd Edition) (Java (Addison-Wesley))
Multi-paradigm Java-Prolog integration in tuProlog
Science of Computer Programming
Variant parametric types: A flexible subtyping scheme for generics
ACM Transactions on Programming Languages and Systems (TOPLAS)
A Prolog-oriented extension of Java programming based on generics and annotations
Proceedings of the 5th international symposium on Principles and practice of programming in Java
Application-specific models and pointcuts using a logic meta language
ISC'06 Proceedings of the 14th international conference on Advances in smalltalk
Logic Java: combining object-oriented and logic programming
WFLP'11 Proceedings of the 20th international conference on Functional and constraint logic programming
LogicObjects: a linguistic symbiosis approach to bring the declarative power of Prolog to Java
Proceedings of the 9th ECOOP Workshop on Reflection, AOP, and Meta-Data for Software Evolution
Hi-index | 0.00 |
P@J is a framework, based on the tuProlog open-source engine, allowing Prolog code to be used as possible implementation of a Java method: Java annotations are used for specifying all the necessary information to fill the Java-Prolog gap. This framework is useful to inject a declarative, logic-based paradigm into mainstream object-oriented programming, so as to easily code functionalities related to automatic reasoning, adaptivity, and conciseness in expressing algorithms. In this paper, an extension of P@J is presented which improves the invocation technique for such Prolog-implemented methods. Java type inference of generic method calls is intensively used to automatically infer all the necessary paradigm mismatch information: this results in an elegant and concise invocation style, which further reduces the gap between Prolog goal satisfaction and Java method invocation. This new approach inspires some interesting applications: we show examples related to the implementation of abstract data types and parsers for context-free grammars.