Remote predicates for prolog : a basis for declarative client/server applications

Date

1994

Authors

Rintoul, Kevin

Journal Title

Journal ISSN

Volume Title

Publisher

Abstract

A number of recent implementations of Prolog contain primitives that allow Prolog to be used to write distributed applications. Many of these implementations are concerned with improving the execution times of Prolog programs but most of this work has necessitated a fairly comprehensive extension to Prolog to cope with the issues raised by parallel and distributed execution. In contrast, this thesis is concerned with the implementation of simple primitives that enable Prolog to be used to write client-server applications. The implementation presented in this thesis is based on the client-server model and consists of three levels. At the top level, two Prolog predicates rcall/2 and listen_to/1, are provided that allow for the remote execution of Prolog predicates. The semantics of these predicates closely approximate the semantics of Prolog's call predicate with the exception that the predicate submitted for remote execution, executes against a remote Prolog database. Communication between the client and server is provided by an extension to the standard Edinburgh I/O model. Communication between the client and server is hidden from the user by the top level implementation The remote predicates are portable and have been successfully implemented on a number of different computer platforms.

Description

Keywords

Citation