Skip to main content

Concurrency and communication: Choices in implementing the coordination language LO

  • Conference paper
  • First Online:
  • 131 Accesses

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 791))

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.

This is a preview of subscription content, log in via an institution.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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.

    Google Scholar 

  2. J-M. Andreoli and R. Pareschi. Communication as fair distribution of knowledge. In Proc. of OOPSLA'91, Phoenix, Az, U.S.A., 1991.

    Google Scholar 

  3. 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.

    Google Scholar 

  4. 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.

    Google Scholar 

  5. A. Brogi and P. Ciancarini. The concurrent language shared prolog. ACM Transactions on Programming Languages and Systems, 13(1):99–123, 1991.

    Google Scholar 

  6. L. Brownston, R. Farrell, E. Kant, and N. Martin. Programming Expert Systems in OPS-5. Addison-Wesley, Reading, Massachussetts, 1985.

    Google Scholar 

  7. N. Carriero and D. Gelernter. The s/net linda kernel. ACM Transactions on Computer Systems, 4(2):110–129, 1986.

    Google Scholar 

  8. 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.

    Google Scholar 

  9. 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.

    Google Scholar 

  10. P. Ciancarini and D. Gelernter. A distributed programming environment based on logic tuple spaces. In Proc. of FGCS'92, Tokyo, Japan, 1992.

    Google Scholar 

  11. S.H. Clearwater, B.H. Huberman, and T. Hogg. Cooperative solution of constraint satisfaction problems. Science, 254, 11 1991.

    Google Scholar 

  12. 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.

    Google Scholar 

  13. Cooper E.G. and Draves R.P. C threads. Technical report, Dept. of Computer Science, Carnegie Mellon Univ., Pittsburgh, Pennsylvania, 1990.

    Google Scholar 

  14. J.E. Faust and H. Levy. The performance of an object oriented threads package. In Proc. of OOPSLA/ECOOP'90, Ottawa, Canada, 1990.

    Google Scholar 

  15. C.L. Forgy. Rete: a fast algorithm for the many pattern/many object pattern match problem. Artificial Intelligence, 19(1), 1982.

    Google Scholar 

  16. D. Gelernter. Generative communication in Linda. ACM Transactions on Programming Languages and Systems, 7(1):80–113, 1985.

    Google Scholar 

  17. A. Giacalone, F. Cosquer, A. Kramer, T. Kuo, L. Leth, S. Prasad, and B. Thomsen. Distribution made Facile. Technical report, ECRC, Munich, Germany, 1992.

    Google Scholar 

  18. J-Y. Girard. Linear logic. Theoretical Computer Science, 50:1–102, 1987.

    Google Scholar 

  19. A. Gupta, C. Forgy, and A. Newell. High-speed implementations of rule-based systems. ACM Transactions on Computer Systems, 7(2):119–146, 1989.

    Google Scholar 

  20. G. Nelson. Systems Programming with Modula-3. Prentice Hall, Englewood Cliffs, New Jersey, 1991.

    Google Scholar 

  21. Xerox PARC. Rpc library for modula. Provided with the modula-3 public release.

    Google Scholar 

  22. L. Sterling and E. Shapiro. The Art of Prolog. MIT, 1986.

    Google Scholar 

  23. S. Stolfo. Five parallel algorithms for production system execution on the DADO machine. In Proc. of AAAI'84, Austin, Tx, U.S.A., 1984.

    Google Scholar 

  24. B. Stroustrup. The C++ Programming Language. Addison-Wesley, Reading, Massachussetts, 1986.

    Google Scholar 

  25. A. Tannenbaum, M. Kaashoek, and H. Bal. Parallel programming using shared objects and broadcasting. IEEE Computer, August 1992.

    Google Scholar 

  26. D. Ungar and C. Chambers. Efficient implementation of object-oriented programming languages. In Tutorial Notes, OOPSLA '92, Vancouver, Canada, 1992.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Rachid Guerraoui Oscar Nierstrasz Michel Riveill

Rights and permissions

Reprints 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

Publish with us

Policies and ethics