The drinking philosophers problem
ACM Transactions on Programming Languages and Systems (TOPLAS) - Lecture notes in computer science Vol. 174
Generative communication in Linda
ACM Transactions on Programming Languages and Systems (TOPLAS)
Communicating sequential processes
Communicating sequential processes
Programming in MODULA-2 (3rd corrected ed.)
Programming in MODULA-2 (3rd corrected ed.)
Distrbution and Abstract Types in Emerald
IEEE Transactions on Software Engineering - Special issue on distributed systems
Language Support for Loosely Coupled Distributed Programs
IEEE Transactions on Software Engineering - Special issue on distributed systems
The Design of the Saguaro Distributed Operating System
IEEE Transactions on Software Engineering - Special issue on distributed systems
Issues in distributed programming languages: the evolution of SR
Issues in distributed programming languages: the evolution of SR
Software—Practice & Experience
Predicate transfer and timeout in message passing systems
Information Processing Letters
Distributed process groups in the V Kernel
ACM Transactions on Computer Systems (TOCS)
The structuring of systems using upcalls
Proceedings of the tenth ACM symposium on Operating systems principles
Supporting distributed applications: experience with Eden
Proceedings of the tenth ACM symposium on Operating systems principles
ACM Transactions on Programming Languages and Systems (TOPLAS)
Guardians and Actions: Linguistic Support for Robust, Distributed Programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Fail-stop processors: an approach to designing fault-tolerant computing systems
ACM Transactions on Computer Systems (TOCS)
A practical tool kit for making portable compilers
Communications of the ACM
Communications of the ACM
Distributed processes: a concurrent programming concept
Communications of the ACM
POPL '86 Proceedings of the 13th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
A Discipline of Programming
PODC '84 Proceedings of the third annual ACM symposium on Principles of distributed computing
Nesting in Ada programs is for the birds
SIGPLAN '80 Proceedings of the ACM-SIGPLAN symposium on The ADA programming language
Enhancing file availability in distributed systems (the saguaro file system)
Enhancing file availability in distributed systems (the saguaro file system)
Report on the programming language Euclid
ACM SIGPLAN Notices
Experiments in SR with different upcall program structures
ACM Transactions on Computer Systems (TOCS)
SIGCOMM '88 Symposium proceedings on Communications architectures and protocols
Using a global name space for parallel execution of UNIX tools
Communications of the ACM - Special issue: multiprocessing
Experience with Charlotte: Simplicity and Function in a Distributed Operating System
IEEE Transactions on Software Engineering
Programming languages for distributed computing systems
ACM Computing Surveys (CSUR)
Distributed Ada-approach and implementation
TRI-Ada '89 Proceedings of the conference on Tri-Ada '89: Ada technology in context: application, development, and deployment
The Evolving Philosophers Problem: Dynamic Change Management
IEEE Transactions on Software Engineering
Paradigms for process interaction in distributed programs
ACM Computing Surveys (CSUR)
Distributed, object-based programming systems
ACM Computing Surveys (CSUR)
The X-Kernel: An Architecture for Implementing Network Protocols
IEEE Transactions on Software Engineering
A dynamic network architecture
ACM Transactions on Computer Systems (TOCS)
Orca: A Language for Parallel Programming of Distributed Systems
IEEE Transactions on Software Engineering
Experience with the language SR in an undergraduate operating systems course
SIGCSE '92 Proceedings of the twenty-third SIGCSE technical symposium on Computer science education
Adaptable concurrency control for atomic data types
ACM Transactions on Computer Systems (TOCS)
Introducing concurrency to a sequential language
Communications of the ACM
Parallel programming with control abstraction
ACM Transactions on Programming Languages and Systems (TOPLAS)
Tools for teaching CCRs, monitors, and CSP concurrent programming concepts
ACM SIGCSE Bulletin
Programming Language Support for Writing Fault-Tolerant Distributed Software
IEEE Transactions on Computers - Special issue on fault-tolerant computing
A comprehensive study of the complexity of multiparty interaction
Journal of the ACM (JACM)
Designing concurrent and distributed control systems
Communications of the ACM
On strong-feasibilities of equivalence-completions
PODC '96 Proceedings of the fifteenth annual ACM symposium on Principles of distributed computing
Distributed software engineering
ICSE '94 Proceedings of the 16th international conference on Software engineering
Models and languages for parallel computation
ACM Computing Surveys (CSUR)
Anonymous Remote Computing: A Paradigm for Parallel Programming on Interconnected Workstations
IEEE Transactions on Software Engineering
Turning a functional data type into a concurrent programming language
SAC '95 Proceedings of the 1995 ACM symposium on Applied computing
The analysis and comparison of scheduling controls in concurrent languages through classification
SIGCSE '90 Proceedings of the twenty-first SIGCSE technical symposium on Computer science education
Modularizing fault-tolerant protocols
EW 5 Proceedings of the 5th workshop on ACM SIGOPS European workshop: Models and paradigms for distributed systems structuring
Program Structuring for Effective Parallel Portability
IEEE Transactions on Parallel and Distributed Systems
Using Automatic Process Clustering for Design Recovery and Distributed Debugging
IEEE Transactions on Software Engineering
Information processing and technology
Views on template-based parallel programming
CASCON '96 Proceedings of the 1996 conference of the Centre for Advanced Studies on Collaborative research
Integrating real-time and partial-order information in event-data displays
CASCON '94 Proceedings of the 1994 conference of the Centre for Advanced Studies on Collaborative research
Supporting multiple parallel programming paradigms on top of the Millipede virtual parallel machine
HIPS '97 Proceedings of the 1997 Workshop on High-Level Programming Models and Supportive Environments (HIPS '97)
Dynamic configuration management in a graph-oriented distributed programming environment
Science of Computer Programming
JR: Flexible Distributed Programming in an Extended Java
ICDCS '01 Proceedings of the The 21st International Conference on Distributed Computing Systems
A prototype debugger for Hermes
CASCON '92 Proceedings of the 1992 conference of the Centre for Advanced Studies on Collaborative research - Volume 1
A prototype debugger for Hermes
CASCON '92 Proceedings of the 1992 conference of the Centre for Advanced Studies on Collaborative research - Volume 2
The use of process clustering in distributed-system event displays
CASCON '93 Proceedings of the 1993 conference of the Centre for Advanced Studies on Collaborative research: software engineering - Volume 1
Enterprise in context: assessing the usability of parallel programming environments
CASCON '93 Proceedings of the 1993 conference of the Centre for Advanced Studies on Collaborative research: distributed computing - Volume 2
JR: Flexible distributed programming in an extended Java
ACM Transactions on Programming Languages and Systems (TOPLAS)
Modern concurrency abstractions for C#
ACM Transactions on Programming Languages and Systems (TOPLAS)
Distributed filaments: efficient fine-grain parallelism on a cluster of workstations
OSDI '94 Proceedings of the 1st USENIX conference on Operating Systems Design and Implementation
Generic operations and capabilities in the JR concurrent programming language
Computer Languages, Systems and Structures
JCoBox: generalizing active objects to concurrent components
ECOOP'10 Proceedings of the 24th European conference on Object-oriented programming
Toward a definition of and linguistic support for partial quiescence
Euro-Par'06 Proceedings of the 12th international conference on Parallel Processing
An exception handling mechanism for the concurrent invocation statement
Euro-Par'05 Proceedings of the 11th international Euro-Par conference on Parallel Processing
Inter-entry selection: Non-determinism and explicit control mechanisms
Computer Languages
An SR approach to multiway rendezvous
Computer Languages
Fairness in shared invocation servicing
Computer Languages, Systems and Structures
Hi-index | 0.03 |
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.