The following is a valid µOCCAM program that performs I/O. The program will calculate and return the factorial of a number that is entered as input. (Note that 0 is returned if the input is negative) The program makes use of a number of different constructions.
Program file:
/public/cs3/web/ipptests/factorial.io
-- This program takes a number from standard input and returns
-- the factorial of this number to standard output.
-- Note that 0 is returned for a negative input.
INT factorial:
INT result=0:
SEQ
stdin ? factorial -- input factoral value to be calculated
IF
factorial >= 0
result := 1
WHILE factorial > 0
SEQ
result := (result * factorial)
factorial := (factorial-1)
stdout ! result
When provided with this input:
/public/cs3/web/ipptests/factorial.in
4
it should generate the following output:
/public/cs3/web/ipptests/factorial.out
==> 24