DIC AMP Channels in SR Language
1 Channels of SR
- In the book, Andrews uses a language, without ever giving us its
name SR, designed by him and implemented by his group.
 
- A channel is an SR PL construct for AMP
channel semop[1 .. n](sender: int, k: kind, timestamp: int) 
- An array of channels, indexed 1 to n
 
- Each element is a triplet of (sender, k, timestamp)
 
 
send semop[j](i, VEE, lc)
- selects one channel 
semop[j] and deposits the triplet (i, VEE, lc) 
- i, VEE, lc are expressions of types int, kind, int
 
 
receive semop[j](i, v, lc)
- selects one channel 
semop[j] and retrieves a triplet 
- i, v, lc are local variables of the receiving process of types
int, kind, int respectively
 
- i, v, lc are assigned the triplet's values
 
 
broadcast semop(i, VEE, lc)
- does 
send semop[j](i, VEE, lc) for all j: 1 .. n 
- in parallel
 
 
 
 
2 References
- Gregory R. Andrews, Concurrent Programming: Principles and Practice,
Benjamin/Cummings, 1991. Chapter 7 on AMP. Required Reading.
 
- https://www2.cs.arizona.edu/~greg/ Andrews and Olsson, The SR
Programming Language: Concurrency in Practice,
Benjamin/Cummings, 1993. The book is now in its third printing.
{pmateti: SR provided remote/local procedure calls (RPC-like),
rendezvous (as in Ada), sending a msg to a procedure (that created
a transient process), and send! coupled with in? that resulted in
message passing.}  Recommended Visits.
 
- ../Projects/WB-SR/ Years ago we used to have the WhiteBoard project
in SR.  This is the src code link.  Highly Recommended Reading.
 
 
 
 
Copyright © 2020 
www.wright.edu/~pmateti • 2020-01-31