The machine-readable dialect of CSP (CSPM) is one result of a research effort with the primary aim of encouraging the creation of tools for CSP. FDR was the first tool to utilise the dialect, and to some extent FDR and CSPM continue to evolve in parallel, but the basic research results are publically available (see Acknowledgements). The language described here is that implemented by the 2.1 release of FDR and has many features not present in FDR1.
CSPM combines the CSP process-algebra with an expression language which, while inspired by languages like Miranda/Orwell and Haskell/Gofer, has been adapted to support the idioms of CSP. The fundamental features of those languages are, however, retained: the lack of any notion of assignment, the ability to treat functions as first-class objects, and a lazy reduction strategy.
Programming languages are used to describe algorithms in a form which can be executed. CSPM includes a functional-programming language, but its primary purpose is different: it is there to support the description of parallel systems in a form which can be automatically manipulated. CSPM scripts should, therefore, be regarded as defining a number of processes rather than a program in the usual sense.
Go to the Next or Previous section, the Detailed Contents, or the FS(E)L Home Page.