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.
- 1 ANDREWS, G. Synchronizing resources. ACM Trans. Program. Lang. Syst. 3, 4 (Oct. 1982), 405. Google Scholar
- 2 BRINCH-HANSEN, P. The programming language Concurrent Pascal. IEEE Trans. Softw. Eng. SE-1, 2 (June 1975), 199-207.Google Scholar
- 3 BRINCH-HANSEN, P. Distributed processes: A concurrent programming concept. Commun. ACM 21, 11 (Nov. 1978), 934. Google Scholar
- 4 COOK, R. Mod--a language for distributed programming. In Proceedings 1st International Conference on Distributed Computing Systems, (Oct. 1979), 233-241.Google Scholar
- 5 DEMINET, J. Experience with multiprocessor algorithms. IEEE Trans. Comput. C-31, 4 (Apr. 1982), 278-287.Google Scholar
- 6 U.S. Dept. of Defense. Reference Manual for the Ada Programming Language. July 1982.Google Scholar
- 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 Scholar
- 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 Scholar
- 9 FELDMAN, J. High-level programming for distributed computing. Commun. ACM 22, 6 (June 1979), 353. Google Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 13 GELERNTER, D. Three reorthogonalizations in a distributed programming language. Tech. Rep., Yale Univ., Dept. Computer Science, Aug. 1983.Google Scholar
- 14 GELERNTER, D. A note on systems programming in Concurrent Prolog. In Proceedings 1984 International Symposium on Logic Programming, (Feb. 1984).Google Scholar
- 15 GELERNTER, D. Symmetric programming languages. Tech. Rep., Yale Univ., Dept. Computer Science, July 1984.Google Scholar
- 16 GEL ERNTER, n. Global name spaces on network computers. In Proceedings 1984 International{ Conference on Parallel Processing, (Aug. 1984).Google Scholar
- 17 HOARE, C.A.R. Communicating sequential processes. Commun. ACM 21 (Aug. 1978), 666-677. Google Scholar
- 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 Scholar
- 19 KAHN, G. The semantics of a simple language for parallel processing. In Proceedings IFIP Congress 1974. p. 471.Google Scholar
- 20 KERNIGHAN, B., AND RITCHIE, D. The C Programming Language. Prentice-Hall, Englewood Cliffs, N.J., 1978. Google Scholar
- 21 KIEBURTZ, R., AND SILBERSHATZ, A. Comments on communicating sequential processes. ACM Trans. Program. Lang. Syst. 1, 2 (Oct. 1979), 218-225. Google Scholar
- 22 KOHLER, W. Overview of synchronization and recovery problems in distributed databases. In Proceedings Fall COMPCON 1980. 433-441.Google Scholar
- 23 LISKOV, B. Primitives for distributed computing. In Proceedings 7th Symposium on Operating System Principles, (Dec. 1979), 353. Google Scholar
- 24 SCHNEIDER, F. Synchronization in distributed programs. ACM Trans. Program. Lang. Syst. 4, 2 (Apr. 1982), 125-148. Google Scholar
- 25 SHOCH, J., AND HUPP, J. The "worm" program--early experience with a distributed computation. Commun. ACM 25, 3 (Mar. 1982), 172-180. Google Scholar
- 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 Scholar
- 27 WIRTH, N. Modula: A language for modular multiprogramming. Softw. Pract. Exper. 7 (1977), 3-35.Google Scholar
Index Terms
- Generative communication in Linda
Recommendations
Eiffel Linda: an object-oriented Linda dialect
Eiffel is a statically-typed object-oriented language which supports good software engineering techniques but provides no support for concurrency; Linda is a parallel programming model which provides a uniform semantics for coordination and ...
Using Logical Operators as an Extended Coordination Mechanism in Linda
COORDINATION '02: Proceedings of the 5th International Conference on Coordination Models and LanguagesIn the last 20 years of research in coordination, researchers were able to demonstrate that distributed languages are made of two distinct parts: a computation and a coordination language. Among a plethora of coordination models (the basis of a ...
Comments