Service Communautaire d'Information sur la Recherche et le Développement - CORDIS

CS-Prolog II: a distributed Prolog system for networking

CS-Prolog II has been developed since 1995. The syntax and the built-in procedures of the language are based on the standard issued in 1995 (ISO/IEC 13211-1). The system was extended with features that were not regulated by the standard. These include modularity, multitasking, real-time programming and network communication.

The most prominent feature of CS-Prolog II is that it can handle parallel processes. CS-Prolog runs concurrent processes in a quasi-parallel manner on a single processor machine using a time sharing method. The inter-process communication takes place via channels. Real-time programming methods like cyclic behaviour, reaction to predefined events, timed interrupts, etc. are implemented in the system. Apart from communication, the processes run independently of each other so that backtracking in one process does not affect other processes.

An advanced exception (error) handling mechanism helps in solving problems. Exceptions (errors or interrupts) can be handled by user defined Prolog procedures and the execution of the program can continue as if it hadn't been interrupted. The channel based communication has recently been extended with networking capabilities. It makes possible message passing between different CS-Prolog applications across the Internet. Communication with foreign (non-CS-Prolog) applications, and interface to relational database systems will be implemented in the near future.

The CS-Prolog system consists of three main components: a compiler, a linker and runtime system. The compiler contains a preprocessor similar to that found in C compilers. The integrated development environment is based on OSF/Morif and runs UNIX platforms. The main advantage of this environment is the multiwindow trace utility in which the debugging messages of separate processes appear in separate windows. The development environment has no documentation yet but it is very easy to use; the functions are self-explanatory.


Ivan FUTO, (Director)
Tél.: +36-1-2122528
Fax: +36-1-2018280