An elementary language construct for parallel programming

Current programmig practice, whether in procedural, functional or other types of languages, is strongly orientated to producing programs which are essentially sequential in nature. Procedural programmers make frequent use of loop structures (e.g. FOR and WHILE statements), while functional programmers use raw recursion instead. Neither of these mechanisms can be easily compiled into parallel code. It is suggested that there may be considerable advantages in avoiding the use of loop structures in procedural languages and raw recursion in any type of language. Instead, programs could be written using a general divide-and-conquer construct which is typically just as easy to use, but allows easy parallel implementation. A number of simple examples are given to show how this could be done and to provide evidence that the idea is not quite as outrageous as it may seem at first sight.

[1]  Paul H. J. Kelly Functional programming for loosely-coupled multiprocessors , 1989, Research monographs in parallel and distributed computing.

[2]  M. Ronan Sleep,et al.  Transputer-Based Experiments with the ZAPP Architecture , 1987, PARLE.