skip to main content
article
Open Access

Generative communication in Linda

Published:02 January 1985Publication History
Skip Abstract Section

Abstract

Generative communication is the basis of a new distributed programming langauge that is intended for systems programming in distributed settings generally and on integrated network computers in particular. It differs from previous interprocess communication models in specifying that messages be added in tuple-structured form to the computation environment, where they exist as named, independent entities until some process chooses to receive them. Generative communication results in a number of distinguishing properties in the new language, Linda, that is built around it. Linda is fully distributed in space and distributed in time; it allows distributed sharing, continuation passing, and structured naming. We discuss these properties and their implications, then give a series of examples. Linda presents novel implementation problems that we discuss in Part II. We are particularly concerned with implementation of the dynamic global name space that the generative communication model requires.

References

  1. 1 ANDREWS, G. Synchronizing resources. ACM Trans. Program. Lang. Syst. 3, 4 (Oct. 1982), 405. Google ScholarGoogle Scholar
  2. 2 BRINCH-HANSEN, P. The programming language Concurrent Pascal. IEEE Trans. Softw. Eng. SE-1, 2 (June 1975), 199-207.Google ScholarGoogle Scholar
  3. 3 BRINCH-HANSEN, P. Distributed processes: A concurrent programming concept. Commun. ACM 21, 11 (Nov. 1978), 934. Google ScholarGoogle Scholar
  4. 4 COOK, R. Mod--a language for distributed programming. In Proceedings 1st International Conference on Distributed Computing Systems, (Oct. 1979), 233-241.Google ScholarGoogle Scholar
  5. 5 DEMINET, J. Experience with multiprocessor algorithms. IEEE Trans. Comput. C-31, 4 (Apr. 1982), 278-287.Google ScholarGoogle Scholar
  6. 6 U.S. Dept. of Defense. Reference Manual for the Ada Programming Language. July 1982.Google ScholarGoogle Scholar
  7. 7 ESWARAN, K., GRAY, J., LORIE, R., AND TRA1GER, L. The notions of consistency and predicate locks in a database system. Commun. ACM 19, 11 (Nov. 1976), 624. Google ScholarGoogle Scholar
  8. 8 FEHLING, M., AND ERMAN, L. Report on the 3rd Annual Workshop on Distributed Artificial Intelligence. ACM SIGART Newsl. 84 (Apr. 1983), 3-12.Google ScholarGoogle Scholar
  9. 9 FELDMAN, J. High-level programming for distributed computing. Commun. ACM 22, 6 (June 1979), 353. Google ScholarGoogle Scholar
  10. 10 FINKEL, R., AND SOLOMON, M. The Arachne distributed operating system. Tech. Rep. 439, Univ. of Wisconsin at Madison, Computer Science Dept., July 1981.Google ScholarGoogle Scholar
  11. 11 GELERNTER, D., AND BERNSTEIN, A. Distributed communication via global buffer. In Proceedings ACM Symposium on Principles of Distributed Computing, (Aug. 1982), 10-18. Google ScholarGoogle Scholar
  12. 12 GELERNTER, D. An integrated microcomputer network for experiments in distributed programming. Ph.D. dissertation, SUNY at Stony Brook, Dept. of Computer Science, Oct. 1982. Google ScholarGoogle Scholar
  13. 13 GELERNTER, D. Three reorthogonalizations in a distributed programming language. Tech. Rep., Yale Univ., Dept. Computer Science, Aug. 1983.Google ScholarGoogle Scholar
  14. 14 GELERNTER, D. A note on systems programming in Concurrent Prolog. In Proceedings 1984 International Symposium on Logic Programming, (Feb. 1984).Google ScholarGoogle Scholar
  15. 15 GELERNTER, D. Symmetric programming languages. Tech. Rep., Yale Univ., Dept. Computer Science, July 1984.Google ScholarGoogle Scholar
  16. 16 GEL ERNTER, n. Global name spaces on network computers. In Proceedings 1984 International{ Conference on Parallel Processing, (Aug. 1984).Google ScholarGoogle Scholar
  17. 17 HOARE, C.A.R. Communicating sequential processes. Commun. ACM 21 (Aug. 1978), 666-677. Google ScholarGoogle Scholar
  18. 18 ICI~BIAR, J.D., et al. Rationale for the design of the Ada programming language. SIGPLAN Not. 14, 6, Part B (June 1979). Google ScholarGoogle Scholar
  19. 19 KAHN, G. The semantics of a simple language for parallel processing. In Proceedings IFIP Congress 1974. p. 471.Google ScholarGoogle Scholar
  20. 20 KERNIGHAN, B., AND RITCHIE, D. The C Programming Language. Prentice-Hall, Englewood Cliffs, N.J., 1978. Google ScholarGoogle Scholar
  21. 21 KIEBURTZ, R., AND SILBERSHATZ, A. Comments on communicating sequential processes. ACM Trans. Program. Lang. Syst. 1, 2 (Oct. 1979), 218-225. Google ScholarGoogle Scholar
  22. 22 KOHLER, W. Overview of synchronization and recovery problems in distributed databases. In Proceedings Fall COMPCON 1980. 433-441.Google ScholarGoogle Scholar
  23. 23 LISKOV, B. Primitives for distributed computing. In Proceedings 7th Symposium on Operating System Principles, (Dec. 1979), 353. Google ScholarGoogle Scholar
  24. 24 SCHNEIDER, F. Synchronization in distributed programs. ACM Trans. Program. Lang. Syst. 4, 2 (Apr. 1982), 125-148. Google ScholarGoogle Scholar
  25. 25 SHOCH, J., AND HUPP, J. The "worm" program--early experience with a distributed computation. Commun. ACM 25, 3 (Mar. 1982), 172-180. Google ScholarGoogle Scholar
  26. 26 WARREN, D., AND PEREIRA, k. Prolog: The language and its implementation compared with Lisp. In Proceedings ACM Symposium on Artificial Intelligence and Programming Languages, (Aug. 1977), 109. Google ScholarGoogle Scholar
  27. 27 WIRTH, N. Modula: A language for modular multiprogramming. Softw. Pract. Exper. 7 (1977), 3-35.Google ScholarGoogle Scholar

Index Terms

  1. Generative communication in Linda

                    Recommendations

                    Reviews

                    Jerzy J. A. Klaczak

                    There are three separate topics of discussion in this paper: the generative interprocess communication concept, its implementation, and examples of its use. Generative communication is a brand new model; it is the generalization of ports in PROLOG-like style (roughly speaking). It assumes the existence of an environment called Tuple Space (TS). This implies two (orthogonal) properties: time- and space(name)-uncoupling of communicating processes. It also allows structured naming and nondeterminism. The simple rules for tuple manipulations result in creating a Name Space (an analogon of the Address Space in sequential computing). A message (tuple) sent by a process to TS is equally accessible to all processes being bound to no one. The concept is then wrapped up with some CSP-like flesh to become a language named Linda. There is, unfortunately, no possibility of directing a tuple to a specified receiver only (anyone can produce or consume tuples instead of an assumed interlocutor). There are also no name locality and nested scope rules. The remedy is to force the first field of every tuple to carry unique sender IDs (required anyway), which are hierarchically built. The termination of a program containing the repetitive-or statement ( C 2*[s1 &vbm0; . . . &vbm0; sn]) will also be a problem. The example part, occupying half of the paper, has no particular theme. Gelernter illustrates that Linda doesn't sacrifice expressiveness for the sake of simplicity. We can simulate remote procedure calls or a CSP-like rendezvous, as well as 1-way or 2-way naming. It is easy to construct interrupt handler, content addressable memory, shared global variables, dynamic process creation, idle node allocation, a watchdog, etc. There are also “usual” applications: disk-head scheduler and 2-phase locking (although the deadlock-detection algorithm in Appendix 4.1 has a bug). The author order the examples, surprisingly, according to Linda's tools used. Individual examples are nevertheless compared to other distributed languages (DPLs). A scheme for implementing dynamic global TS is explored last, with attention also paid to files and reliability (yet handshake protocol contradicts with time-uncoupling). It is valid for an even-dimensioned hypercube multiprocessor. The problem remains open for a general network. The implementation described was dismantled due to “unsophisticated hardware.” I do believe that the concept is suitable also to less intricate networks. Overall, this is an up-to-date research paper which is a must for both the theoretician and the constructor of DPLs. A high level of distributed computation maturity is a necessity; however, the necessary references to particular DPLs, other aspects of Linda, and issues in distributed processing are given. The depth of details varies from chapter to chapter, but the exposition is clear. The most attractive feature, of course, is the generative communication. Is it a language__?__ As far as this paper is concerned, no. It is a concept, general enough to be incorporated into any DPL. The paper introduces questions for further study, but doesn't answer them. It is not, contrary to the author, the C-language of DPLs; but it can become the BASIC. This is certainly the path I should like to follow, and continue.

                    Access critical reviews of Computing literature here

                    Become a reviewer for Computing Reviews.

                    Comments

                    Login options

                    Check if you have access through your login credentials or your institution to get full access on this article.

                    Sign in

                    Full Access

                    • Published in

                      cover image ACM Transactions on Programming Languages and Systems
                      ACM Transactions on Programming Languages and Systems  Volume 7, Issue 1
                      Jan. 1985
                      181 pages
                      ISSN:0164-0925
                      EISSN:1558-4593
                      DOI:10.1145/2363
                      Issue’s Table of Contents

                      Copyright © 1985 ACM

                      Publisher

                      Association for Computing Machinery

                      New York, NY, United States

                      Publication History

                      • Published: 2 January 1985
                      Published in toplas Volume 7, Issue 1

                      Permissions

                      Request permissions about this article.

                      Request Permissions

                      Check for updates

                      Qualifiers

                      • article

                    PDF Format

                    View or Download as a PDF file.

                    PDF

                    eReader

                    View online with eReader.

                    eReader