Abstract
By means of an illustrative application, we discuss the implementation choices of the rule-based coordination language LO.
Distributed applications written in LO manifest two levels of granularity, each with their specific communication paradigm. At the finer level, individual objects are composed into agents and communicate through blackboards. At the coarser level, these agents interact through broadcasts.
This dichotomy determines implementation choices: Concurrency among agents naturally maps onto distributed processes (with e.g. RPC), whereas concurrency among objects maps onto threads (in shared memory). These four abstractions (objects, blackboards, agents, and broadcasts) together with LO's basic computation paradigm (rules) are implemented as a class-based run-time library, thereby enriching classical object-oriented platforms.
Finally we stress the fact that the resulting run-time library is polymorphic: The run-time can manipulate any independently defined application object, provided its class respects a minimal protocol. Run-time polymorphism has turned out to be the key to composition-based reuse.
Preview
Unable to display preview. Download preview PDF.
References
J-M. Andreoli, L. Leth, R. Pareschi, and B. Thomsen. True concurrency semantics for a linear logic programming language with broadcast communication. In Proc. of TAPSOFT'93, Orsay (France), 1992.
J-M. Andreoli and R. Pareschi. Communication as fair distribution of knowledge. In Proc. of OOPSLA'91, Phoenix, Az, U.S.A., 1991.
J-M. Andreoli, R. Pareschi, and T. Castagnetti. Abstract interpretation of linear logic programs. In Proc. of the 1993 International Logic Programming Symposium, Vancouver (Canada), 1993.
M. Bourgois, J-M. Andreoli, and R. Pareschi. Extending objects with rules, composition and concurrency: the lo experience. In Proc. of the OOPSLA '92 workshop on Object-Oriented Programming Languages — The Next Generation, Vancouver, Canada, 1992.
A. Brogi and P. Ciancarini. The concurrent language shared prolog. ACM Transactions on Programming Languages and Systems, 13(1):99–123, 1991.
L. Brownston, R. Farrell, E. Kant, and N. Martin. Programming Expert Systems in OPS-5. Addison-Wesley, Reading, Massachussetts, 1985.
N. Carriero and D. Gelernter. The s/net linda kernel. ACM Transactions on Computer Systems, 4(2):110–129, 1986.
T. Castagnetti and P. Ciancarini. Static analysis of a parallel logic language based on the blackboard model. Journal of Parallel and Distributed Computing, 13(14):412–423, 1991.
P. Ciancarini. Polis (poli spaces): Programming with multiple tuple spaces. Technical report, Dept of Computer Science, Yale University, Hew Haven, Ct, U.S.A., 1991.
P. Ciancarini and D. Gelernter. A distributed programming environment based on logic tuple spaces. In Proc. of FGCS'92, Tokyo, Japan, 1992.
S.H. Clearwater, B.H. Huberman, and T. Hogg. Cooperative solution of constraint satisfaction problems. Science, 254, 11 1991.
C. Creveuil. Implementation of gamma on the connection machine. In Proc. of the workshop: Research Direction in High-Level Parallel Programming Languages, Mont Saint Michel, France, 1992.
Cooper E.G. and Draves R.P. C threads. Technical report, Dept. of Computer Science, Carnegie Mellon Univ., Pittsburgh, Pennsylvania, 1990.
J.E. Faust and H. Levy. The performance of an object oriented threads package. In Proc. of OOPSLA/ECOOP'90, Ottawa, Canada, 1990.
C.L. Forgy. Rete: a fast algorithm for the many pattern/many object pattern match problem. Artificial Intelligence, 19(1), 1982.
D. Gelernter. Generative communication in Linda. ACM Transactions on Programming Languages and Systems, 7(1):80–113, 1985.
A. Giacalone, F. Cosquer, A. Kramer, T. Kuo, L. Leth, S. Prasad, and B. Thomsen. Distribution made Facile. Technical report, ECRC, Munich, Germany, 1992.
J-Y. Girard. Linear logic. Theoretical Computer Science, 50:1–102, 1987.
A. Gupta, C. Forgy, and A. Newell. High-speed implementations of rule-based systems. ACM Transactions on Computer Systems, 7(2):119–146, 1989.
G. Nelson. Systems Programming with Modula-3. Prentice Hall, Englewood Cliffs, New Jersey, 1991.
Xerox PARC. Rpc library for modula. Provided with the modula-3 public release.
L. Sterling and E. Shapiro. The Art of Prolog. MIT, 1986.
S. Stolfo. Five parallel algorithms for production system execution on the DADO machine. In Proc. of AAAI'84, Austin, Tx, U.S.A., 1984.
B. Stroustrup. The C++ Programming Language. Addison-Wesley, Reading, Massachussetts, 1986.
A. Tannenbaum, M. Kaashoek, and H. Bal. Parallel programming using shared objects and broadcasting. IEEE Computer, August 1992.
D. Ungar and C. Chambers. Efficient implementation of object-oriented programming languages. In Tutorial Notes, OOPSLA '92, Vancouver, Canada, 1992.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1994 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Bourgois, M., Andreoli, J.M., Pareschi, R. (1994). Concurrency and communication: Choices in implementing the coordination language LO . In: Guerraoui, R., Nierstrasz, O., Riveill, M. (eds) Object-Based Distributed Programming. ECOOP 1993. Lecture Notes in Computer Science, vol 791. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0017535
Download citation
DOI: https://doi.org/10.1007/BFb0017535
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-57932-8
Online ISBN: 978-3-540-48389-2
eBook Packages: Springer Book Archive