next up previous contents
Next: Design Up: MySQL occam- API Previous: Introduction   Contents

The occam-$ \pi $ programming language

occam is a highly parallel safe language based on Hoares Communicating Sequential Processes, a calculus that provides a sound semantic foundation for concurrent execution.

The language was originally developed by the company Inmos in the 80's for their parallel transputer chip. It has since been further developed mainly by a group of researchers at the University of Kent. Notably, the language has been fused with some of the $ \pi $ -calculus for allowing a more dynamic treatment of processes. This is why the language today is called occam-$ \pi $ .

Central to occam is the notion of processes. Processes can execute concurrently and possess their own internal data. They can only communicate via. well-defined messages over channels. Thus, there is no shared memory in occam, and all communication must be done via. channels. This is the main reason that occam is a very safe and easy language: There are no nasty aliasing effects or surprising concurrent behaviour due to the inappropriate use of the usual concurrency constructs (semaphores etc).

In addition, the compiler is able to check and disallow a variety of unwanted behaviour such as race conditions and out-of-bounds array assignment.

In short, occam is an excellent choice of language for every parallel programming task. The only drawback is that the current compiler onlys supports single-CPU architectures. But even for single-CPU applications occam is worth a thought due to the increased clarity and safety obtained. In addition, efforts are being made continually to further develop occam-$ \pi $ .


next up previous contents
Next: Design Up: MySQL occam- API Previous: Introduction   Contents
Espen Suenson 2006-07-07