occam

(Note lower case) A language based on Anthony Hoare's CSP and David May's 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 occam 2.

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].