Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article
Open access

Generative communication in Linda

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

    Cited By

    View all
    • (2024)Deterministic Coordination across Multiple TimelinesACM Transactions on Embedded Computing Systems10.1145/361535723:5(1-29)Online publication date: 14-Aug-2024
    • (2023)SwarmL: A Language for Programming Fully Distributed Intelligent Building SystemsBuildings10.3390/buildings1302049913:2(499)Online publication date: 12-Feb-2023
    • (2023)Fault-tolerance at your Finger Tips with the TeamPlay Coordination LanguageProceedings of the 35th Symposium on Implementation and Application of Functional Languages10.1145/3652561.3652571(1-13)Online publication date: 29-Aug-2023
    • Show More Cited By

    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

    Information & Contributors

    Information

    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

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 02 January 1985
    Published in TOPLAS Volume 7, Issue 1

    Permissions

    Request permissions for this article.

    Check for updates

    Qualifiers

    • Article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)360
    • Downloads (Last 6 weeks)43
    Reflects downloads up to 12 Aug 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)Deterministic Coordination across Multiple TimelinesACM Transactions on Embedded Computing Systems10.1145/361535723:5(1-29)Online publication date: 14-Aug-2024
    • (2023)SwarmL: A Language for Programming Fully Distributed Intelligent Building SystemsBuildings10.3390/buildings1302049913:2(499)Online publication date: 12-Feb-2023
    • (2023)Fault-tolerance at your Finger Tips with the TeamPlay Coordination LanguageProceedings of the 35th Symposium on Implementation and Application of Functional Languages10.1145/3652561.3652571(1-13)Online publication date: 29-Aug-2023
    • (2023)MSCCLang: Microsoft Collective Communication LanguageProceedings of the 28th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 210.1145/3575693.3575724(502-514)Online publication date: 27-Jan-2023
    • (2023)Coordinating and programming multiple ROS-based robots with X-KLAIMInternational Journal on Software Tools for Technology Transfer (STTT)10.1007/s10009-023-00727-w25:5-6(747-764)Online publication date: 1-Dec-2023
    • (2023)A Fault‐tolerant model for tuple space coordination in distributed environmentsConcurrency and Computation: Practice and Experience10.1002/cpe.788436:1Online publication date: 7-Aug-2023
    • (2022)On the Use of the Multi-Agent Environment for Mobility ApplicationsFuture Internet10.3390/fi1405013214:5(132)Online publication date: 27-Apr-2022
    • (2022)Modeling and Simulation of Cell Signaling Networks for Subsequent Analytics Processes Using Big Data and Machine LearningBioinformatics and Biology Insights10.1177/1177932222109173916(117793222210917)Online publication date: 22-Apr-2022
    • (2022) In silico Prediction on the PI3K/AKT/mTOR Pathway of the Antiproliferative Effect of O. joconostle in Breast Cancer Models Cancer Informatics10.1177/1176935122108702821(117693512210870)Online publication date: 25-Mar-2022
    • (2022)ScaFi: A Scala DSL and Toolkit for Aggregate ProgrammingSoftwareX10.1016/j.softx.2022.10124820(101248)Online publication date: Dec-2022
    • Show More Cited By

    View Options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Get Access

    Login options

    Full Access

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media