-- SmallExample.sak
--Last edit: August 27, 1981 4:13 PM
SmallExample: MONITOR =
{
speaker: DEVICE[n:CARDINAL] = {
IN
OUT out:BOOLEAN
GUARDIAN {}
STATE i: CARDINAL
CONTROL
FOR i IN [1..n] DO out ← TRUE; out ← FALSE ENDLOOP } ;
listener: DEVICE = {
IN in: BOOLEAN
OUT
GUARDIAN {}
STATE
CONTROL
DO WHEN in UP: writestring[ " up "];
WHEN in DOWN: writestring[ " down "];
ENDLOOP };
CIRCUIT {
COMPONENTS s: speaker[n: 10], l:listener
NODES c: BOOLEAN
REPRESENTATION
CONNECTIONS s[out: c], l[in: c] }
}.