Skip to main content
Log in

The evolution of the SR language

  • Published:
Distributed Computing Aims and scope Submit manuscript

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.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

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

    Google Scholar 

  • Andrews GR (1982) The distributed programming language SR-mechanisms, design and implementation. Software Pract Exper 12:719–754

    Google Scholar 

  • Andrews GR, Schneider FB (1983) Concepts and notations for concurrent programming. ACM Comput Surv 15:3–43

    Google Scholar 

  • 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

    Google Scholar 

  • Cook R (1980)*Mod — a language for distributed programming. IEEE Trans Software Eng SE 6:563–571

    Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

  • Liskov B et al. (1981) CLU Reference Manual, Lecture Notes in Computer Science 114, Springer-Verlag, Berlin

    Google Scholar 

  • Liskov B, Scheifler R (1983) Guardians and actions: linguistic support for robust, distributed programs. ACM Trans on Prog Lang and Systems 5:381–404

    Google Scholar 

  • 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

    Google Scholar 

  • Schlichting RD, Schneider FB (1983) Fail-stop processors: an approach to designing fault-tolerant computing systems. ACM Trans Comput Syst 1:222–238

    Google Scholar 

  • Scott ML (1983) Messages vs. remote procedures is a false dichotomy. SIGPLAN Notices 18:57–62

    Google Scholar 

  • 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

    Google Scholar 

  • Wirth N (1982) Programming in Modula-2. Springer, New York

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

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

Reprints 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

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF01661168

Key words

Navigation