Harnessing the potential processing power of MIMD networks requires the development of a fluency in parallel systems design equal to our traditional skills for sequential logic. Occam (TM) is a simple, small but powerful language which enables such fluency. The model of parallelism provided by occam is a central (not “added on”) feature and is directly supported by the INMOS transputer (TM). This model reflects major software engineering features such as abstraction, structuring, and information hiding and has important benefits for the life-cycle development costs of large systems (not least through the establishment of libraries of reusable software/hardware components). This paper introduces such engineering with the emphasis upon finely-grained highly-parallel designs. Some examples will be taken from the area of high-performance fault-tolerant real-time embedded systems.
Occam is one of those rare languages that obeys (and was designed to obey) a rich set of mathematical laws (concerning sequential, parallel, and non-deterministic logic). This allows clear (and formal) reasoning. The combination of the security and simplicity of occam with the performance and simplicity of the transputer is worthy of proper investigation.
[1]
C. A. R. Hoare,et al.
The emperor's old clothes
,
1981,
CACM.
[2]
A. Burns,et al.
Programming in Occam 2
,
1988
.
[3]
C. A. R. Hoare,et al.
Laws of programming
,
1987,
CACM.
[4]
David May,et al.
Occam and the transputer
,
1988,
European Workshop on Applications and Theory in Petri Nets.
[5]
Jon M. Kerridge.
Occam Programming: A Practical Approach
,
1987
.
[6]
David May,et al.
A Tutorial Introduction To Occam Programming
,
1987
.
[7]
C. A. R. Hoare,et al.
The Laws of Occam Programming
,
1988,
Theor. Comput. Sci..
[8]
BarrettGeoff.
Formal Methods Applied to a Floating-Point Number System
,
1989
.
[9]
Michael Goldsmith,et al.
Programming in occam 2
,
1985,
Prentice Hall international series in computer science.
[10]
Peter H. Welch,et al.
Emulating Digital Logic using Transputer Networks (very High Parallelism = Simplicity = Performance)
,
1987,
PARLE.
[11]
C. A. R. Hoare,et al.
Communicating sequential processes
,
1978,
CACM.