Abstract
From the point of view of distributed programming one of the most interesting communication mechanisms is associative tuple matching in a shared dataspace, as exemplified in the Linda coordination language. Linda has been used as a coordination layer to parallelize several sequential programming languages, such as C and Scheme. In this paper we study the combination of Linda with a logic language, whose result is the language Extended Shared Prolog (ESP). We show that ESP is based on a new programming model called PoliS, that extends Linda with Multiple Tuple Spaces. A class of applications for ESP is discussed, introducing the concept of “open multiple tuple spaces”. Finally, we show how the distributed implementation of ESP uses the network version of Linda’s tuple space.
Similar content being viewed by others
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.References
Agha, G. and Callsen, C., “ActorSpace: An Open Distributed Programming Paradigm,” inProc. ACM Symp. on Principles and Practice of Parallel Programming (PPOPP), volume 28: 7 of ACM SIGPLAN Notices, San Diego CA, pp. 23–32, July 1993.
Almgren, J., Andersson, S., Flood, L., Frisk, C., Nilsson, H., and Sundberg, J.,SICStus Prolog Library Manual, Swedish Institute of Computer Science, October 1991.
Ambriola, V., Ciancarini, P., and Montangero, C., “Enacting Software Processes in Oikos,” inProc. ACM SIGSOFT Conf. on Software Development Environments, volume 15: 6 of ACM SIGSOFT Software Engineering Notes, pp. 12–23, 1990.
Andreoli, J., Ciancarini, P., and Pareschi, R., “Interaction Abstract Machines” inTrends in Object-Based Concurrent Computing (G. Agha, P. Wegner, and A. Yonezawa, eds.), MIT Press, Cambridge, 1993.
Andreoli, J.-M. and Pareschi, R., “Linear Objects: Logical Processes with Built-in Inheritance,”New Generation Computing, 9, 3–4, pp. 445–473, 1991.
Arango, M., Berndt, M., Carriero, N., Gelernter, D. and Gilmore, D., “Adventures with Network Linda,”Supercomputing Review, 10, 3, pp. 42–46, October 1990.
Bal, H., Steiner, J., and Tanenbaum, A., “Programming Languages for Distributed Computing Systems,”ACM Computer Surveys, 21, 3, pp. 261–322, 1989.
Banatre, J., Coutant, A., and LeMetayer, D., “A Parallel Machine for Multiset Transformation and Its Programming Style,”Future Generations Computer Systems, 4, pp. 133–144, 1988.
Banatre, J. and LeMetayer, D., “Programming by Multiset Transformation,”Communications of the ACM, 36, 1, pp. 98–111, January 1993.
Borrmann, L., Herdieckerhoff, M., and Klein, A., “Tuple Space Integrated into Modula-2,” inProc. CONPAR 88 (Jesshope and Reinartz, eds.), Cambridge, England, 1988, Cambridge University Press, pp. 1–8, 1988.
Brogi, A., Ciampolini, A., Lamma, E., and Mello, P., “The Implementation of a Distributed Model for Logic Programming Based on Multiple Headed Clauses,”Information Processing Letters, 42, pp. 331–338, 1992.
Brogi, A. and Ciancarini, P., “The Concurrent Language Shared Prolog,”ACM Transactions on Programming Languages and Systems, 13, 1, pp. 99–123, 1991.
Bucci, A., Ciancarini, P., and Montangero, C., “Extended Shared Prolog: A Multiple Tuple Spaces Logic Language,” inProc. 10th Japanese Logic Programming Conference, Lecture Notes in Computer Science, Springer-Verlag, Berlin, 1991 (to appear).
Butcher, P. and Zedan, H., “Lucinda: A Polymorphic Linda,” inResearch Directions in High Level Parallel Programming Languages, volume 574 of Lecture Notes in Computer Science (J. Banatre and D. LeMetayer, eds.), Mont Saint-Michel, France, pp. 65–81, June 1991.
Carriero, N., “Implementing Tuple Space Machines,”Ph.D. thesis, Department of Computer Science, Yale University, New Haven, CT, 1987.
Carriero, N. and Gelernter, D.,How to Write Parallel Programs: A First Course, MIT Press, Cambridge, 1990.
Carriero, N. and Gelernter, D., “Coordination Languages and Their Significance,”Communications of the ACM, 35, 2, pp. 97–107, February 1992.
Castagnetti, T. and Ciancarini, P., “Static Analysis of a Parallel Logic Language Based on the Blackboard Model,”Journal of Parallel and Distributed Computing, 13, 12, pp. 412–423, December 1991.
Ciancarini, P., “Parallel Programming with Logic Languages: A Survey,”Computer Languages, 17, 4, pp. 213–240, 1992.
Ciancarini, P., “Coordinating Rule-Based Software Processes with ESP,”ACM Transactions on Software Engineering and Methodology, 2, 3, pp. 203–227, 1993.
Ciancarini, P., Jensen, K., and Yankelewich, D., “The Semantics of a Parallel Language Based on a Shared Dataspace,”Technical Report, TR26-92, Dipartimento di Informatica, Università di Pisa, Italy, September 1992.
Czajkowski, G. and Zielinski, K., “Extending the Parallel Logic Programming Paradigm with Linda-like operations,” inProc. Workshop on Distributed Implementations
Davison, A., “Blackboard Systems in Polka,”International Journal of Parallel Programming, 16, 5, pp. 401–424, October 1989
DeBosschere, K., “Blackboard Communication in Prolog,” inParallel Execution of Logic Programs, volume 569 of Lecture Notes in Computer Science (A. Beaumont and G. Gupta, eds.), pp. 159–172, 1991.
DeBosschere, K. and Tarau, P. “Some Issues in the Implementation of a Unix-Based Blackboard,” inProc. Workshop on Blackboard-Based Logic Programming (F. DeBoesschere, J. Jacquet, and P. Tarau, eds.), Budapest, Hungary, pp. 91–104, June 1993.
Dewan, P., “Designing and Implementing Multi-User Applications: A Case Study,”Software: Practice and Experience, 23, 1, pp. 75–93, 1993.
Ellis, C., Gibbs, S., and Rein, G., “Groupware: Some Issues and Experiences,”Communications of the ACM, 34, I, pp. 38–58, January 1991.
Foster, I. and Taylor, S.,Strand: New Concepts in Parallel Programming, Prentice Hall, 1990.
Gelernter, D., “A Note on Systems Programming in Concurrent Prolog,” inProc. Int. Symp. on Logic Programming, IEEE Computer Press, pp. 76–82, 1984.
Gelernter, D., “Generative Communication in Linda,”ACM Transactions on Programming Languages and Systems, 7, 1, pp. 80–112, 1985.
Gelernter, D., “Multiple Tuple Spaces in Linda,” inProc. Conf. on Parallel Architectures and Languages Europe (PARLE 89), volume 365 of Lecture Notes in Computer Science (E. Odijk, M. Rem. and J. Syre, eds.), pp. 20–27, 1989.
Gelernter, D.,Mirror Worlds, Oxford University Press, 1991.
Girard, J. Y., “Linear Logic,”Theoretical Computer Science, 50, pp. 1–102, 1987.
Haridi, S., “A Logic Programming Language Based on the Andorra Model,”New Generation Computing, 7, 2–3, pp. 109–126, 1990.
Hewitt, C., “Offices are Open Systems,”ACM Transactions on Office Information Systems, 4, 3, pp. 271–287, July 1986.
Hill, R., Brinck, T., Patterson, J., Rohall, S. and Wilner, W., “The Rendezvous Language and Architecture,”Communications of the ACM, 36, 1, pp. 62–67, January 1993.
Jagannathan, S., “A Generalized Framework for First-Class Tuple Space Systems,” inProc. 5th Workshop on Languages and Compilers for Parallel Computing (U. Banerjee, D. Gelernter, A. Nicolau, and D. Padua, eds.), New Haven, CT, pp. 213–220. August 1992. TR YaleU/DCS/RR915.
Libes, D., “Kibitz—Connecting Multiple Interactive Programs Togeter,”Software: Practice and Experience, 23, 5, pp. 465–475, 1993.
Lusk, E., Warren, D., and Alii, “The Aurora OR-Parallel Prolog System,” inProc. Int. Conf. on Fifth Generation Computer Systems, ICOT, pp. 819–830, 1988.
Matsuoka, S. and Kawai, S., “Using Tuple-Space Communication in Distributed Object-Oriented Architectures,” inProc. Conf. OOPSLA, volume 23: 11 of ACM SIGPLAN Notices, pp. 276–284, November 1988.
Pereira, L., and Nasr, R., “Delta Prolog: A Distributed Logic Programming Language,” inProc. Int. Conf. on Fifth Generation Computer Systems, pp. 283–291, 1984.
Rem, M., “Associons: A Program Notation with Tuples Instead of Variables,”ACM Transactions on Programming Languages and Systems, 3, 3, pp. 251–262, July 1981.
Roman, G. and Cunningham, H. C., “Mixed Programming Metaphors in a Shared Dataspace Model of Concurrency,”IEEE Transactions on Software Engineering, 16, 12, pp. 1361–1373, December 1990.
Saraswat, V., “Concurrent Constraint Programming Languages,”Ph.D. thesis, Carnegie Mellon University, 1989. (Published by MIT Press, 1993).
Saraswat, V., Kahn, K., and Levy, J., “Janus: A Step Towards Distributed Constraint Programming” inProc. North American Conf. on Logic Programming (S. Debray and M. Hermenegildo, eds.), MIT Press, Cambridge, pp. 431–446, 1990.
Schwartz, D. and Sterling, L., “Black Log: From Blackboard System to Process Oriented Prolog,” inProc. Workshop on Blackboard-Based Logic Programming (F. DeBoesschere, J. Jacquet, and P. Tarau, eds.), Budapest, Hungary, pp. 57–75, June 1993.
Scientific Computing Associates, Inc., New Haven, CT,C-Linda Reference Manual, 1990.
Scientific Computing Associates, Inc., New Haven, CT,FORTRAN-Linda Reference Manual, 1993.
Shapiro, E., “Embedding Linda and Other Joys of Concurrent Logic Programming,”Communications of the ACM, 33, 10, pp 1240–1258, October 1989.
Shapiro, E., “The Family of Concurrent Logic Languages,”ACM Computer Surveys, 21, 3, pp. 412–510, September 1989.
Shizgal, I., “The Amoeba-Prolog System,”The Computer Journal, 33, 6, pp. 508–517. 1990.
Sterling, L. and Shapiro, E.,The Art of Prolog, MIT Press, Cambridge, 1996.
Sutcliffe, G., “Prolog-D-Linda v2: A New Embedding of Linda in SICStus Prolog,” inProc. Workshop on Blackboard-Based Logic Programming (F. DeBoesschere, J. Jacquet, and P. Tarau, eds.), Budapest, Hungary pp. 105–117, June 1993.
Sutcliffe, G. and Pinakis, J., “Prolog-D-Linda,”Technical Report, TR91/7, Department of Computer Science, University of Western Australia, Nedilands, Western Australia, 1992.
Szeredi, P., “Using Dynamic Predicates in an Or-Parallel Prolog System,” inProc. Int. Symposium on Logic Programming (V. Saraswat and K. Ueda, eds.), SanDiego, USA, 1991, MIT Press, Cambridge 1991.
Tick, E.,Parallel Logic Programming, Prentice Hall, 1991.
Wise, M., Jones, D., and Hintz, T., “PMS Prolog: A Distributed Coarse-Grain-Parallel Prolog with Processes, Modules and Streams,” inImplementations of Distributed Prolog (P. Kacsuk and M. Wise, eds.),Series in Parallel Computing, Wiley, pp. 379–404, 1992.
Author information
Authors and Affiliations
Additional information
Paolo Ciancarini, Ph. D.: He is Associate Professor of Computer Science at the University of Bologna, Italy. He received the Master degree in Computer Science in 1982 and the Ph. D. in Informatics in 1988 both from the University of Pisa. In 1990–91 he was a visiting scientist at the Yale University. His interests are in parallel and distributed computing, coordination languages, formal methods in software engineering, and innovative software engineering environments.of Logic Languages (G. Succi and G. Colla, eds.), Budapest, pp. 45–65 June 1993.
About this article
Cite this article
Ciancarini, P. Distributed programming with Logic Tuple Spaces. New Gener Comput 12, 251–283 (1994). https://doi.org/10.1007/BF03037345
Received:
Revised:
Issue Date:
DOI: https://doi.org/10.1007/BF03037345