Abstract
As a result of our experience, the SR distributed programming language has evolved. One change is that resources and processes are now dynamic rather than static. Another change is that operations and processes are now integrated in a novel way: all the mechanisms for process interaction — remote and local procedure call, rendezvous, dynamic process creation, and asynchronous message passing — are expressed in similar ways. This paper explains the rationale for these and other changes. We examine the fundamental issues faced by the designers of any distributed programming language and consider the ways in which these issues could be addressed. Special attention is given to the design objectives of expressiveness, simplicity, and efficiency.
Similar content being viewed by others
References
Reference Manual for the Ada Programming Language. January 1983. ANSI/MIL-STD-1815A
Andrews GR (1981) Synchronizing Resources. ACM Trans Program Lang Syst 3: 405–430
Andrews GR (1982) The distributed programming language SR-mechanisms, design and implementation. Software Pract Exper 12:719–754
Andrews GR, Schneider FB (1983) Concepts and notations for concurrent programming. ACM Comput Surv 15:3–43
Andrews GR, Schlichting RD, Buchholz NC, Hayes R, Purdin T (1985) The Saguaro distributed operating system. TR 85-9, Dept of Computer Science, the University of Arizona
Andrews GR, Olsson RA (1985) Report on the distributed programming language SR. TR 85-23, Dept. of Computer Science, The University of Arizona
Bernstein AJ (1984) The semantics of timeout. TR 84/065, Dept of Computer Science, SUNY at Stony Brook
Black AP (1982) Exception handling: The case against. TR 82-01-02, Dept of Computer Science, The University of Washington
Black AP, Hutchinson N, McCord BC, Raj RK (1984) EPL programmer's guide. Eden project, Dept of Computer Science, University of Washington
Brinch Hansen P (1978) Distributed processes: a concurrent programming construct Comm ACM 21:934–941
Cook R (1980)*Mod — a language for distributed programming. IEEE Trans Software Eng SE 6:563–571
Cooper EC (1984) Replicated procedure call. Proc 3rd ACM Symp on Principles of Distributed Computing, Vancouver, BC, pp 220–232
Feldman JA (1979) High level programming for distributed computing. Comm ACM 22:353–368
Gehani NH, Roome WD (1985) Concurrent C. AT&T Bell Laboratories Report.
Gentleman WM (1981) Message passing between sequential processes: the reply primitive and the administrator concept. Software Pract Exper 11:453–466
Gifford DK (1979) Weighted voting for replicated data. Proc 7th Symposium on Operating Systems Principles, Pacific Grove, CA, 150–162
Hoare CAR (1973) Hints on programming language design. SIGACT/SIGPLAN Symposium on Principles of Programming Languages, Boston
Hoare CAR (1978) Communicating sequential processes. Comm ACM 21:666–677
Holt RC (1983) Concurrent Euclid, the Unix system, and Tunis. Addison-Wesley
Lampson BW, Horning JJ, London RL, Mitchell JG, Popek GJ (1977) Report on the programming language Euclid. SIGPLAN Notices 12:1–79
Liskov B et al. (1981) CLU Reference Manual, Lecture Notes in Computer Science 114, Springer-Verlag, Berlin
Liskov B, Scheifler R (1983) Guardians and actions: linguistic support for robust, distributed programs. ACM Trans on Prog Lang and Systems 5:381–404
Liskov B, Herlihy M (1983) Issues in process and communications structure for distributed programs. Proc Third Symposium on Relability in Distributed Software and Database Systems, Clearwater Beach, Florida, pp 123–132
Liskov B, Herlihy M, Gilbert L (1986) Limitations of remote procedure call and static process structure for distributed computing. Proc 13th ACM Symp on Principles of Programming Languages, St. Petersburg, Florida, pp 150–159
Mitchell JG, Maybury W, Sweet R (1979) Mesa language manual, version 5.0 Rep CSL-79-3, Xerox Palo Alto Research Center
Parr FN, Strom RE (1983) NIL: A high-level language for distributed systems programming. IBM Systems Journal 22:111–127
Schlichting RD, Schneider FB (1983) Fail-stop processors: an approach to designing fault-tolerant computing systems. ACM Trans Comput Syst 1:222–238
Scott ML (1983) Messages vs. remote procedures is a false dichotomy. SIGPLAN Notices 18:57–62
Strom RE, Yemini S (1983) NIL: An integrated language and system for distributed programming. Research Report RC 9949, IBM Research Division
Wirth N (1977) Modula: a language for modular multiprogramming. Software Pract Exper 7:3–35
Wirth N (1982) Programming in Modula-2. Springer, New York
Author information
Authors and Affiliations
Additional information
Gregory R. Andrews was born in Olympia, WA, in 1947. He received the B.S. degree in mathematics from Stanford University in 1969 and the Ph.D. degree in computer science from the University of Washington in 1974. From 1974–1979 he was an Assistant Professor of Computer Science at Cornell University. Since 1979 he has been an Associate Professor of Computer Science at the University of Arizona. During 1983–1984, he was a Visiting Associate Professor of Computer Science at the University of Washington. He has also consulted for the U.S. Army Electronics Command and Cray Laboratories. His research interests include concurrent programming languages and distributed operating systems; he is currently co-authoring (with Fred Schneider) a textbook on concurrent programming. Dr. Andrews is a member of the Association for Computing Machinery (ACM). From 1980–1983 he was Secretary-Treasurer of the ACM Special Interest Group on Operating Systems. He has also been on the Board of Editors of Information Processing Letters since 1979.
Ronald A. Olsson was born in Huntington, NY, in 1955. He received B.A. degrees in mathematics and computer science and the M.A. degree in mathematics from the State University of New York, College at Potsdam, in 1977. In 1979, he received the M.S. degree in computer science from Cornell University. He was a Lecturer of Computer Science at the State University of New York, College at Brockport, from 1979 to 1981. Since 1981 he has been a graduate student in computer science at the University of Arizona and will complete his Ph.D. in June 1986. His research interests include programming languages, operating systems, distributed systems, and systems software. Mr. Olsson is a student member of the Association for Computing Machinery.
This work is supported by NSF under Grant DCR-8402090, and by the Air Force Office of Scientific Research under Grant AFOSR-84-0072. The U.S. Government is authorized to reproduce and distribute reprints for Governmental purposes not-withstanding any copyright notices thereon
Rights and permissions
About this article
Cite this article
Andrews, G.R., Olsson, R.A. The evolution of the SR language. Distrib Comput 1, 133–149 (1986). https://doi.org/10.1007/BF01661168
Issue Date:
DOI: https://doi.org/10.1007/BF01661168