From: gmt@cs.arizona.edu (Gregg Townsend)
Newsgroups: fj.mail-lists.parallel
Subject: Announcing Version 2 of the SR Language
Date: 31 Aug 92 12:45:10 GMT
Distribution: fj

SR (Synchronizing Resources) is a language for writing concurrent programs.
The main language constructs are resources and operations.  Resources
encapsulate processes and variables they share; operations provide the
primary mechanism for process interaction.  SR provides a novel integration
of the mechanisms for invoking and servicing operations.  Consequently, all
of local and remote procedure call, rendezvous, message passing, dynamic
process creation, multicast, and semaphores are supported.  An overview of
version 1 of the language and implementation appeared in the January, 1988,
issue of TOPLAS (ACM Trans. on Prog. Languages and Systems 10, 1, 51-86).

Version 2.0 of SR is now available from The University of Arizona by anonymous
FTP or by mail.  New features include shared global variables and operations,
circular imports, real numbers and math functions, formatted I/O, a more
general syntax with fewer special cases, a more robust system with better
error checking, true multiprocessing when run on a Sequent Symmetry or
Silicon Graphics Iris, distributed termination detection, and many additional
enhancements.  Version 2.0 is significantly improved over the preliminary
version, 2.A, that was released in March.

Version 2 is described in detail in the just-published book

        Gregory R. Andrews and Ronald A. Olsson
	The SR Programming Language: Concurrency in Practice
        Benjamin/Cummings Publishing Company, 1993
	ISBN 0-8053-0088-0

It is tested on Sun4, Sun3, DECstation, SGI Iris, HP RISC and 9000/300, NeXT,
and Sequent Symmetry platforms.  Code is also included for the DG AViiON,
IBM RS/6000, DEC VAX, Encore Multimax, Apollo DN, and others.


SR has been used at a number of universities and labs for course work and
research projects involving concurrent programming.  It has been used in
concurrent programming courses to reinforce concepts with small programming
projects and with larger projects such as experiments with parallel
algorithms,  replicated databases, distributed simulations, and parts of
distributed operating systems such as file systems and command interpreters.
SR has also been used as a tool in several masters theses and doctoral
dissertations to conduct experiments in parallel and distributed programming
and to implement larger systems such as a system for mixed language
programming, one for distributed implementation of graph algorithms,
experiments with load balancing algorithms, and experiments with upcall
program structures.


SR is available by anonymous FTP from cs.arizona.edu.  There are two compressed
tar files; be sure to transfer them in binary (image) mode.  The files are:

    /sr/sr.tar.Z:  The SR programming language, including source code,
    documentation in PostScript and troff form, checkout programs, and
    examples.

    /sr/vs.tar.Z:  The extended verification suite, needed only if you're
    going to modify the system or port it to a new architecture.

Electronic mail interfaces to FTP are available at BITFTP@PUCC.BITNET (for
BITNET members) or ftpmail@decwrl.dec.com (for anyone).  For details, send
either server a message with ``help'' in the body.

If you pick up SR by FTP, please send mail to sr-project@cs.arizona.edu to let
us know.  We'll also put you on the INFO-SR mailing list (see below) if you so
request.

SR is also available by mail on tape, Sun cartridge, or two 1.44 MB diskettes.
For details and an order blank, contact the SR project at the email address
above, or call (602) 621-8448, or send a FAX to (602) 621-4246, or write to:

    SR Project
    Department of Computer Science
    University of Arizona
    Tucson, AZ  85721

An electronic mailing list is in place for discussing SR topics.  You can
join by sending your email address to info-sr-request@cs.arizona.edu or
uunet!arizona!sr-project.