An overview of the SR language and implementation

Gregory R. Andrews, Michael Coffin, Irving Elshoff, Kelvin Nilson, Gregg Townsend, Ronald A. Olsson, Titus Purdin
1988 ACM Transactions on Programming Languages and Systems  
SR is a language for programming distributed systems ranging from operating systems to application programs. On the basis of our experience with the initial version, the language has evolved considerably. In this paper we describe the current version of SR and give an overview of its implementation. The main language constructs are still resources and operations. Resources encapsulate processes and variables that they share; operations provide the primary mechanism for process interaction. One
more » ... ay in which SR has changed is that both resources and processes are now created dynamically. Another change is that inheritance is supported. A third change is that the mechanisms for operation invocation-call and send-and operation implementation-proc and in-have been extended and integrated. Consequently, all of local and remote procedure call, rendezvous, dynamic process creation, asynchronous message passing, multicast, and semaphores are supported. We have found this flexibility to be very useful for distributed programming. Moreover, by basing SR on a small number of well-integrated concepts, the language has proved easy to learn and use, and it has a reasonably efficient implementation.
doi:10.1145/42192.42324 fatcat:4l3melmfkfdo3pqkckgwqirkxe