TURING UNIVERSALITY OF RECURSIVE PATTERNS FOR PARALLEL PROGRAMMING
- 1 June 2002
- journal article
- research article
- Published by World Scientific Pub Co Pte Ltd in Parallel Processing Letters
- Vol. 12 (02) , 229-246
- https://doi.org/10.1142/s012962640200094x
Abstract
Dijkstra's famous thesis "goto considered harmful", which paved the way for structured programming, was formally substantiated by the result of Böhm and Jacopini on the Turing universality of the three well-known basic programming constructs. We argue for a similar ideal in parallel programming — "send-receive considered harmful" — i.e. abandoning explicit send-receive statements between processors and expressing programs using a restricted set of parallel constructs. We deal with recursive patterns of parallelism, represented formally as morphisms in a suitable calculus. The aim of this paper is to study the expressive power of two morphisms – catamorphisms and anamorphisms. For a restricted program calculus based on these morphisms, we constructively prove two formal results, whose pragmatic message is: (1) A programming language based on catamorphisms is computationally equivalent to the class of primitive recursive functions; (2) A programming language based on both catamorphisms and anamorphisms is equivalent to the class of partial recursive functions and is therefore Turing-universal. We present a case study on numerical integration, demonstrating the expressive power of ana- and catamorphisms for parallel programming.Keywords
This publication has 9 references indexed in Scilit:
- A tutorial on the universality and expressiveness of foldJournal of Functional Programming, 1999
- Extracting and implementing list homomorphisms in parallel program developmentScience of Computer Programming, 1999
- The Static Parallelization of Loops and RecursionsThe Journal of Supercomputing, 1997
- Deriving structural hylomorphisms from recursive definitionsACM SIGPLAN Notices, 1996
- Parallelization of divide-and-conquer in the Bird-Meertens formalismFormal Aspects of Computing, 1995
- Algebraically compact functorsJournal of Pure and Applied Algebra, 1992
- ParamorphismsFormal Aspects of Computing, 1992
- Letters to the editor: go to statement considered harmfulCommunications of the ACM, 1968
- Flow diagrams, turing machines and languages with only two formation rulesCommunications of the ACM, 1966