An overview of the SR language and implementation
- 1 January 1988
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Programming Languages and Systems
- Vol. 10 (1), 51-86
- https://doi.org/10.1145/42192.42324
Abstract
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 way 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.Keywords
This publication has 20 references indexed in Scilit:
- Predicate transfer and timeout in message passing systemsInformation Processing Letters, 1987
- Distrbution and Abstract Types in EmeraldIEEE Transactions on Software Engineering, 1987
- The Design of the Saguaro Distributed Operating SystemIEEE Transactions on Software Engineering, 1987
- Supporting distributed applicationsPublished by Association for Computing Machinery (ACM) ,1985
- The structuring of systems using upcallsPublished by Association for Computing Machinery (ACM) ,1985
- Distributed process groups in the V KernelACM Transactions on Computer Systems, 1985
- The drinking philosophers problemACM Transactions on Programming Languages and Systems, 1984
- The V Kernel: A Software Base for Distributed SystemsIEEE Software, 1984
- Synchronizing ResourcesACM Transactions on Programming Languages and Systems, 1981
- Distributed processesCommunications of the ACM, 1978