Abstract
This paper introduces IC-Prolog II — a new implementation of Prolog that is particularly suited to distributed applications. Unlike other work on distributed logic programming, we do not aim to improve the raw performance of a logic program nor do we require multiprocessor machines or specialised hardware. Instead, our aim is to widen the applicability of logic programming to encompass new classes of practical applications which require the co-ordination of concurrently executing programs on separate workstations to communicate over the network.
IC-Prolog II features multiple threads, a Parlog sub-system and high-level communication primitives. Multiple threads enables the concurrent execution of independent goals. The Parlog sub-system allows local fine-grained parallelism to be specified. In IC-Prolog II, Prolog can call Parlog and viceversa. The combination of the two logic languages offers greater expressive power than simply the sum of the two since different components of the same application may use either Parlog or Prolog or both. The high-level communication primitives provide the means for independent IC-Prolog II processes on different machines on a network to communicate. The result is a language well-suited for writing network-friendly applications.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
K. A. M. Ali and R. Karlsson. The Muse Or-Parallel Prolog Model and its Performance. In S. Debray and M. Hermenegildo, editors, Proceedings of the North American Conference on Logic Programming, pages 747–768, Austin, October 1990. MIT Press.
A. Brogi and P. Ciancarini. The Concurrent Language Shared Prolog. ACM Transactions on Programming Languages and Systems, 13(1):99–123, January 1991.
M. Carlsson. Freeze, Indexing and other Implementation Issues in the WAM. In Proceedings of the Fourth International Conference on Logic Programming, pages 40–58, Melbourne, May 1987.
M. Carlsson and J. Widen. SICStus Prolog User Manual. Research Report R88007B, Swedish Institute of Computer Science, Kista, 1988.
D. A. Chu. I.C. Prolog II: Language for Implementing Multi-Agent Systems. In S. M. Deen, editor, Proceedings of the SIG on Cooperating Knowledged Based Systems, pages 61–74. DAKE Centre, University of Keele, 1993.
K. L. Clark and S. Gregory. Parlog and Prolog United. In Proceedings of the Fourth International Conference on Logic Programming, pages 927–961, Melbourne, May 1987. MIT Press.
K. L. Clark, F. G. McCabe, and S. Gregory. IC-PROLOG Language Features. In K. L. Clark and S.-A. Tarnlund, editors, Logic Programming, pages 253–266. Academic Press, London, 1982.
A. Colmerauer. Prolog-II Manuel de Reference et Modele Theorique. Groupe d’Intelligence Artificielle, Universite d’Aix-Marseille, Luminy.
Y. Cosmadopoulos and D. A. Chu. IC Prolog II Reference Manual. Logic Programming Section, Dept. of Computing, Imperial College, London, 1993.
V. S. Costa, R. Yang, and D. H. D. Warren. The Andorra-I Engine: A Parallel Implementation of the Basic Andorra Model. In Eighth International Conference on Logic Programming, Paris, June 1991. MIT Press.
J. Crammond. The Abstract Machine and Implementation of Parallel Parlog. New Generation Computing, 10:385–422, 1992.
K. De Bosschere. Multi-Prolog, Another Approach for Parallelizing Prolog. In D. J. Evans, G. R. Joubert, and F. J. Peters, editors, Proceedings of Parallel Computing, pages 443–448, Leiden, 1989. Elsevier North Holland.
Sz. Ferenczi and I. Futo. CS-Prolog: a Communicating Sequential Prolog. In P. Kacsuk and M. Wise, editors, Implementations of Distributed Prolog, pages 357–378. John Wiley & Sons, Chichester, 1982.
S. Gregory. Parallel Logic Programming in PARLOG. International Series in Logic Programming. Addison-Wesley Publishing Company, Wokingham, 1987.
E. Lusk, D. H. D. Warren, and S. Haridi. The Aurora OR-Parallel Prolog System. New Generation Computing, 7(2,3):243–271, 1990.
F. G. McCabe. Logic and Objects. Prentice Hall International Series in Computer Science. Prentice Hall International (UK) Ltd., Hemel Hempstead, 1992.
L. Naish. Parallelizing NU-Prolog. In R. A. Kowalski and K. A. Bowen, editors, Proceedings of the Fifth International Conference and Symposium on Logic Programming, pages 1546–1564, Seattle, August 1988. MIT Press.
L. M. Pereira and R. Nasr. Delta-Prolog: A Distributed Logic Programming Language. In Proceedings of the International Conference on Fifth Generation Computer Systems, pages 283–291, Tokyo, November 1984.
A. Porto. Epilog: a Language for Extended Programming in Logic. In J. A. Campbell, editor, Implementations of Prolog, pages 268–278. Ellis Horwood, Chichester, 1984.
Quintus Corporation, Palo Alto. Manual for Quintus Prolog Release 3.1, 1991.
W. R. Stevens. UNIX Network Programming. Prentice Hall Software Series. Prentice-Hall, New Jersey, 1990.
J. Thorn and J. Zobel. NU-Prolog Reference Manual, version 1.0. Technical Report 86/10, Dept. of Computer Science, University of Melbourne, 1986.
D. H. D. Warren. An Abstract Prolog Instruction Set. Technical Note 309, Artificial Intelligence Center, SRI International, October 1983.
M. J. Wise, D. G. Jones, and T. Hintz. PMS-Prolog: a Distributed, Coarse-grain-parallel Prolog with Processes, Modules and Streams. In P. Kacsuk and M. Wise, editors, Implementations of Distributed Prolog, pages 379–403. John Wiley & Sons, Chichester, 1982.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1994 Springer Science+Business Media New York
About this chapter
Cite this chapter
Chu, D. (1994). I.C. Prolog II: a Multi-threaded Prolog System. In: Tick, E., Succi, G. (eds) Implementations of Logic Programming Systems. Springer, Boston, MA. https://doi.org/10.1007/978-1-4615-2690-2_2
Download citation
DOI: https://doi.org/10.1007/978-1-4615-2690-2_2
Publisher Name: Springer, Boston, MA
Print ISBN: 978-1-4613-6157-2
Online ISBN: 978-1-4615-2690-2
eBook Packages: Springer Book Archive