.uh "Acknowledgements"
.pp
Nick Buchholz, Roger Hayes, Steve Manweiler, and Rick Schlichting
provided valuable feedback on SR[[0]] and
served as a sounding board for new proposals.
Hayes, Manweiler, and Stella Atkins wrote large applications
that pushed the implementation to its limits.
Atkins also helped obtain performance measurements
and provided detailed comments on earlier versions of this paper.
The students in CSc 552 and CSc 652 forced us
to get the compiler finished and made
extensive use of the language.
Finally, the referees
provided useful advice on the content and presentation of this paper;
Michael Scott's comments were especially perceptive and helpful.
.uh "References"
.SZ 9 11
.nr tp 10
.ip [Ada83] 10
\fIReference Manual for the Ada Programming Language.\fP
ANSI/MIL-STD-1815A, January 1983.
.ip [Andr81] 10
Andrews, G.R.
Synchronizing resources.
\fIACM Trans. on Prog. Languages and Systems 3\fR, 4 (Oct. 1981), 405-430.
.ip [Andr82] 10
Andrews, G.R.
The distributed programming language SR\(emmechanisms,
design and implementation.
\fISoftware\(emPractice and Experience 12\fP,
8 (Aug. 1982), 719-754.
.ip [Andr86] 10
Andrews, G.R. and Olsson, R.A.
The evolution of the SR language.
#Distributed #Computing 1, 3 (July 1986), 133-149.
.ip [Andr87a] 10
Andrews, G.R., Schlichting, R.D., Hayes, R., and Purdin, T.
The design of the Saguaro distributed operating system.
\fIIEEE Trans. Softw. Engr.\fR, Volume SE-13, Number 1
(Jan. 1987), 104-118.
.ip [Andr87b] 10
Andrews, G.R. and Olsson, R.A.
Revised report on the SR programming language.
TR 87-27, Dept. of Computer Science, The University of Arizona,
November 1987.
.ip [Atki87a] 10
Atkins, S.
Experiments in SR with different upcall program structures.
Technical Report, Dept. of Computer Science, Simon Fraser
University, April 1987.
.ip [Atki87b] 10
Atkins, S. and Olsson, R.A.
Performance of multitasking and synchronisation mechanisms.
CSE-87-10, Div. of Computer Science, Univ. of California at Davis,
July 1987.
.ip [Bern87] 10
Bernstein, A.J.
Predicate transfer and timeout in message passing systems.
#Information #Processing #Letters, Volume 24, Number 1
(Jan. 1987), 43-52.
.ip [Blac84] 10
Black, A.P., Hutchinson, N., McCord, B.C., and Raj, R.K.
EPL programmer's guide.
Eden Project,
Dept. of Computer Science,
University of Washington,
June 1984.
.ip [Blac85] 10
Black, A.P.
Supporting distributed applications: experience with Eden.
\fIProc. 10th Symposium on Operating Systems Principles\fR,
Orcas Island, WA, December 1985, 181-193.
.ip [Blac87] 10
Black, A., Hutchinson, N., Jul, E., Levy, H., and Carter, L.
Distribution and abstract types in Emerald.
\fIIEEE Trans. Soft. Engr.\fR, Volume SE-13, Number 1
(Jan. 1987), 65-76.
.ip [Brin78] 10
Brinch Hansen, P.
Distributed processes: a concurrent programming construct.
\fIComm. ACM 21\fP,
11 (Nov. 1978), 934-941.
.ip [Chan84] 10
Chandy, K.M. and Misra, J.
The drinking philosophers problem.
\fIACM Trans. on Prog. Lang. and Systems 6\fP,
4 (October 1984), 632-646.
.ip [Cher84] 10
Cheriton, D.R.
The V kernel: a software base for distributed systems.
\fIIEEE Software 1\fP,
2 (April 1984), 19-42.
.ip [Cher85] 10
Cheriton, D.R. and Zwaenepoel W.
Distributed process groups in the V kernel.
\fIACM Trans. on Computer Systems 3\fP,
2 (May 1985), 77-107.
.ip [Clar80] 10
Clarke, L.A., Wileden, J.C., and Wolf, A.L.
Nesting in Ada programs is for the birds.
\fIProc. SIGPLAN Symp. on the Ada Programming Language\fR,
Boston, MA, December 1980, 139-145.
.ip [Clar85] 10
Clark, D.D.
The structuring of systems using upcalls.
\fIProc. 10th Symposium on Operating Systems Principles\fR,
Orcas Island, WA, December 1985, 171-180.
.ip [Cook80] 10
Cook, R.
*Mod\(ema language for distributed programming.
\fIIEEE Trans. Softw. Eng. SE-6\fP,
6 (Nov. 1980),
563-571.
.ip [Coop84] 10
Cooper, E.C.
Replication procedure call.
\fIProc. 3rd ACM Symp. on Principles of Distributed Computing\fR,
Vancouver, BC, August 1984, 220-232.
.ip [Dijk76] 10
Dijkstra, E.W.
\fIA Discipline of Programming\fR.
Prentice-Hall, Englewood Cliffs, NJ, 1976.
.ip [Geha86] 10
Gehani, N.H, and Roome, W.D.
Concurrent C.
\fISoftware\(emPractice & Experience 16\fR, 9 (Sept. 1986), 821-844.
.ip [Gele85] 10
Gelernter, D.
Generative communication in Linda.
\fIACM Trans. on Prog. Lang. and Systems 7\fP,
1 (Jan. 1985), 80-112.
.ip [Hoar81] 10
Hoare, C.A.R.
The emperor's old clothes.
\fIComm. ACM 24\fP,
2 (Feb. 1981), 75-83.
.ip [Hoar85] 10
Hoare, C.A.R.
\fICommunicating Sequential Processes\fR.
Prentice-Hall, Inc., Englewood Cliffs, NJ, 1985.
.ip [Lamp77] 10
Lampson, B.W., Horning, J.J., London, R.L., Mitchell, J.G., and Popek, G.J.
Report on the programming language Euclid.
\fISIGPLAN Notices 12\fP,
2 (Feb. 1977), 1-79.
.ip [Lisk83] 10
Liskov, B. and Scheifler, R.
Guardians and actions:
linguistic support for robust, distributed programs.
\fIACM Trans. on Prog. Lang. and Systems 5\fP,
3 (July 1983), 381-404.
.ip [Lisk86] 10
Liskov, B., Herlihy, M., and Gilbert, L.
Limitations of remote procedure call and static process structure
for distributed computing.
\fIProc. 13th ACM Symp. on Principles of Programming Languages\fR,
St. Petersburg, Florida, January 1986, 150-159.
.ip [Mitc79] 10
Mitchell, J.G., Maybury, W., and Sweet, R.
Mesa language manual, version 5.0.
Rep. CSL-79-3,
Xerox Palo Alto Research Center,
April 1979.
.ip [Olss86] 10
Olsson, R.A.
Issues in distributed programming languages:
the evolution of SR.
TR 86-21 (Ph.D. Dissertation), Dept. of Computer Science,
The University of Arizona, August 1986.
.ip [Parr83] 10
Parr, F.N. and Strom, R.E.
NIL:  A high-level language for distributed systems programming.
\fIIBM Systems Journal\fP, Vol. 22, Nos. 1/\&2 (1983), 111-127.
.ip [Purd87] 10
Purdin, T.
Enhancing file availability in distributed systems
(the Saguaro file system).
TR 87-26 (Ph.D. Dissertation), Dept. of Computer Science,
The University of Arizona, October 1987.
.ip [Schl83] 10
Schlichting, R.D. and Schneider, F.B.
Fail-stop processors:
an approach to designing fault-tolerant computing systems.
\fIACM Trans. on Computer Systems 1\fP,
3 (Aug. 1983), 222-238.
.ip [Schl87] 10
Schlichting, R.D., Cristian, F., and Purdin, T.
Mechanisms for failure handling in distributed programming languages.
TR 87-13, Dept. of Computer Science, The University of Arizona,
June 1987.
.ip [Scot87] 10
Scott, M.L.
Language support for loosely coupled distributed programs.
\fIIEEE Trans. Softw. Eng. SE-13\fP, 1 (Jan. 1987), 88-103.
.ip [Stro83] 10
Strom, R.E. and Yemini, S.
NIL:  An integrated language and system for distributed programming.
Research Report RC 9949, IBM Research Division, April, 1983.
.ip [Tane83] 10
Tanenbaum, A.S., van Staveren, H., Keizer, E.G., and Stevenson, J.W.
A practical tool kit for making portable compilers.
\fIComm. ACM 26\fP,
9 (Sept. 1983), 654-660.
.ip [Wirt77] 10
Wirth, N.
Modula: a language for modular multiprogramming.
\fISoftware\(emPractice and Experience 7\fP,
(1977), 3-35.
.ip [Wirt82] 10
Wirth, N.
\fIProgramming in Modula-2\fP.
Springer-Verlag,
New York,
1982.
