GNU prolog to Java: a study on how to connect the two programming environments - Mendes, David José Murteira (2004)
Neste trabalho pretende-se efectuar o estudo e a implementação de uma interface bidireccional entre o GNU-Prolog e a linguagem Java. O objectivo desta ferramenta é dar a possibilidade de utilizar o poder da programação em lógica dentro de um ambiente multi-plataforma. Pretende-se possibilitar a escrita de programas Prolog que invocam métodos Java e programas Java que chamam predicados Prolog. Java e Prolog são um par ideal para disponibilizar úteis "aplicações inteligentes", com interfaces actuais, disponibilizadas para diferentes sistemas operativos existentes. Misturada com o Java esta "inteligência" beneficia das características desta linguagem como independência de plataformas, segurança, tratamento de excepções e segurança de tipos entre outras. Uma ligação destas possibilita a criação de ferramentas tais como servidores para diagnóstico de problemas, aplicações robot que se deslocam automatizadamente na Internet, agentes inteligentes móveis que atendem pedidos de outros agentes com capacidade de raciocínio sejam humanos ou não. Um dos objectivos primários, no entanto, que se pretende atingir é a integração de uma implementação Prolog compatível ISO e open source com todos os ambientes de desenvolvimento e ferramentas Java disponíveis actualmente. Como tal a ligação pretendida é feita a nível muito baixo para poder apresentar características de alta performance, flexibilidade e portabilidade. /*** Abstract - This work is intended to study and put up a bidirectional interface between GNU-Prolog and the Java language. The purpose of this tool is the possibility to use the power of logic programming within a cross platform environment. This meaning to write prolog programs invoking java methods and Java programs calling prolog predicates. Java and Prolog are an ideal pair for delivering useful intelligent applications with state-of-the-art user interfaces deployed over several operating systems and media. Mixed with Java this "intelligence" benefits from all of the design characteristics of this language like platform independent, security, type safety, exception handling, and so on, to create such tools as servers for diagnosing problems, spider and robot applications that transparently wander the net, mobile intelligent agents attending requests from other reasoning agents, human or not. One of the primary objectives, though, intended to be achieved is to integrate a full blown, ISO Prolog compliant, open source Prolog with the many IDES and tools in the Java momentum.