SSR is an experimental language used during development of VMS and the services VMS offers. It is based on the pi-calculus notions of rendez-vous style send and receive operations, made between Virtual Processors, aka "VP" (equiv to a thread). SSR has commands for creating and destroying VPs, and three kinds of send-receive paired operations.
- The first, send_from_to, is point to point. It pairs a specific sender with specific receiver. Both wait for rendezvous.
- The second, send_of_type_to, adds some generic capacity by specifying a "type". In this form, the receiver is specific, but the receiver doesn't have to know which VP is sending, it rendezvous with any connection of the correct type. This increases flexibility while maintaining some control over scope.
- The third kind, send_of_type, is fully generic. The type is equivalent to a global channel. Any sender of this type can connect to any receiver of this type. In this way none of the VPs need a pointer to any other VPs. This provides flexibility when exact pairing of VPs is not critical to correct outcome.
The language also includes a singleton construct that designates a piece of code as to be executed only once.
Miscellaneous performance constructs are also available, such as one to force which core a virtual processor is assigned to, to control scheduling.
Several papers on VMS use SSR for example programs, when explaining VMS.