(Note lower case) A language based on C.A.R. Hoare's CSP and EPL. Named after the English philosopher, William of Occam (1300-1349) who propounded Occam's Razor. The occam language was designed by David May of INMOS to easily describe concurrent processes which communicate via one-way channels. It was developed to run on the INMOS transputer but compilers are available for VAX, Sun and Intel MDS, inter alia.
The basic entity in occam is the process of which there are four fundamental types, assignment, input, output, and wait. More complex processes are constructed from these using SEQ to specify sequential execution, PAR to specify parallel execution and ALT where each process is associated with an input from a channel. The process whose channel inputs first is executed. The fourth constructor is IF with a list of conditions and associated processes. The process executed is the one with the first true condition in textual order. There is no operator precedence.
The original occam is now known as "occam 1". It was extended to produce occam 2.
There is a simulator for VAX.
Tahoe mailing list: <occam@sutcase.case.syr.edu>.
[David May et al, 1982. Concurrent algorithms.]
["Occam", D. May, SIGPLAN Notices 18(4):69-79 (1983).]
(18 Nov 1994)