Abstract
A transformational programming approach is proposed as a means for developing a class of parallel algorithms from clear functional specifications to efficient networks of communicating sequential processes (CSP). A foundation for the systematic refinement of functional specifications into CSP processes is established. Techniques for exhibiting implicit parallelism in functional specification are developed. Their use is illustrated by deriving new efficient parallel algorithms to several problems. Derivation and reasoning are conducted in an equational style using the calculus for program synthesis developed by Bird and Meertens.
This is a preview of subscription content, log in via an institution.
Preview
Unable to display preview. Download preview PDF.
References
Abdallah, A. E. “An Algebraic Approach for the Refinement of Functional Specifications to CSP Processes”. Internal Report. The University of Reading, 1994.
Bird, R. S. “The Promotion and Accumulation Strategies in Transformational Programming”. ACM TOPLAS, Vol. 6, No. 4, 1984.
Bird, R. S. “An Introduction to the Theory of Lists”. PRG-56, Oxford University, Programming Research Group, 1986.
Bird, R. S. “Constructive functional programming”. In Constructive Methods in Computer Science, Springer-Verlag, 1988.
Bird, R. S. and Meertens, L. G. L. T. Two Exercices Found in a Book on Algorithmics. In Program Specification and Transformation. North Holland, 1986
Bird, R. S. and Moor, O. de “List Partitions” Formal Aspects of Computing, Vol 5, No 1, 1993.
Bird, R. S. and Wadler, P. Introduction to Functional Programming. Prentice-Hall, 1988.
Broy, M. “Towards a design methodology for distributed systems”. In Constructive Methods in Computer Science. Springer-Verlag, 1988.
CIP language group. The Munich project CIP, LNCS Vol. 1, Springer-Verlag, 1984.
Dennis, J. B. “Data Flow Computations”. In Control Flow and Data Flow: Concepts of Distributed Porgramming. Springer-Verlag, 1985.
Darlington, J. “A Synthesis of Several Sorting Algorithms”. Acta Informatica, Vol. 11, No. 1, 1978.
Hoare, C. A. R. Communicating Sequential Processes. Prentice-Hall, 1985.
Hoare, C. A. R. “Algebraic Specifications and Proofs for Communicating Sequential Processes”. In Development in Concurrency and Communication. Addison Wesley, 1990.
Lengauer, C. and Hehner, E. C. R. “A methodology for programming with concurrency: an informal presentation”. Sci. Comput. Programming, Vol. 2, 1982.
Luk, W. and Jones, G. “The derivation of regular synchronous circuits”. Proc. International Conference on Systolic Arrays, San Diego, May, 1988.
Meertens L. G. L. T. (Ed) Program Specification and Transformation. North Holland. 1986
Moitra, A. “Automatic construction of CSP programs from sequential non-deterministic programs”. Science of Computer Programming, Vol. 5, No 3, 1985.
Peyton-Jones, S., Clack, C. Salkid, J., and Hardie, M. “GRIP: a high-performance architecture for parallel graph reduction”. In Proc. ACM Conference on Functional Programming and Computer Architechture, Portland, USA, Sep. 1987.
Sheeran, M. “μFP — An Algebraic VLSI Design Language”. D.Phil Thesis, (also PRG-39), Oxford University, Programming Research Group, 1983.
Turner, D. A. “Miranda: a non-strict functional language with polymorphic types”. In Proc. Functional Programming Languages and Computer Architecture, Nancy, 1985 (Lecture Notes in Computer Science 201, Springer-Verlag).
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1995 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Abdallah, A.E. (1995). Derivation of parallel algorithms from functional specifications to CSP processes. In: Möller, B. (eds) Mathematics of Program Construction. MPC 1995. Lecture Notes in Computer Science, vol 947. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-60117-1_6
Download citation
DOI: https://doi.org/10.1007/3-540-60117-1_6
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-60117-3
Online ISBN: 978-3-540-49445-4
eBook Packages: Springer Book Archive