The following is a valid µOCCAM program that performs I/O. This tests your handling of pipes and parallel processes. A process reads from stdin, sends it to another process (through a channel called pipe) and this process then outputs it to stdout. It also tries its best to confuse your compiler to test your scoping.
Program file:
/public/cs3/web/ipptests/par_pipe.io
CHAN pipe:
PAR
INT a:
INT b:
SEQ
b:=99
pipe ? b
stdout ! b
INT a:
SEQ
stdin ? a
pipe ! a
When provided with this input:
/public/cs3/web/ipptests/par_pipe.in
3
it should generate the following output:
/public/cs3/web/ipptests/par_pipe.out
==> 3