'''Occam''' (from [[William of Ockham]] of [[Occam's Razor]] fame) is a [[Parallel computing|parallel]] [[programming language]] that builds on [[Communicating Sequential Processes]] (CSP) and shares many of their features. It is named after [[William of Ockham]] of [[Occam's Razor]] fame. Occam is, in a way, a practical executable implementation of CSP.
Occam is an [[imperative (programming)|imperative]] [[procedural (programming)|procedural]] language (such as [[Pascal (programming language)|Pascal]]). OccamIt was developed by [[Inmos]] for their line of [[Transputer]]s, but implementations for other platforms exist as well.
==Overview==
NoteIn thatthe in thefollowing examples below indentation and formatting are critical for parsing the code: expressions are terminated by the end of the line, lists of expressions need to be on the same level of indentation (this feature is also found in other languages, such as [[Python (programming language)|Python]], [[Haskell (programming language)|Haskell]], [[Icon (programming language)|Icon]], [[Miranda (programming language)|Miranda]], and [[ABC (programming language)|ABC]]).
Communication between processes work through named ''channels''. One process outputs data to a channel via '''!''' while another one inputs data with '''?'''. Input and output will block until the other end is ready to accept or offer data. Examples (c is a variable):
==Occam 2==
'''Occam 2''' is an extension produced by INMOS Ltd in 1987. Occam 2that adds floating-point, functions and more language types. For example,like varying sizes of integers (INT16, INT32) and character types.
With this revision itOccam became a language capable of expressing useful programs, whereas occam 1 was more suited to examining algorithms and exploring the new language.
["occam 2 Reference Manual", [[INMOS]], P-H 1988, ISBN 0-13-629312-3].
* Ability to return fixed-length array from function;
For a full list of the changes see theAppendix P of the [http://www.wotug.org/occam/documentation/oc21refman.pdf INMOS Occam 2.1 Reference Manual] Appendix P.
==Occam 3==
|