Skip to main content

Derivation of parallel algorithms from functional specifications to CSP processes

  • Contributed Lectures
  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 947))

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.

Unable to display preview. Download preview PDF.

References

  1. Abdallah, A. E. “An Algebraic Approach for the Refinement of Functional Specifications to CSP Processes”. Internal Report. The University of Reading, 1994.

    Google Scholar 

  2. Bird, R. S. “The Promotion and Accumulation Strategies in Transformational Programming”. ACM TOPLAS, Vol. 6, No. 4, 1984.

    Google Scholar 

  3. Bird, R. S. “An Introduction to the Theory of Lists”. PRG-56, Oxford University, Programming Research Group, 1986.

    Google Scholar 

  4. Bird, R. S. “Constructive functional programming”. In Constructive Methods in Computer Science, Springer-Verlag, 1988.

    Google Scholar 

  5. 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

    Google Scholar 

  6. Bird, R. S. and Moor, O. de “List Partitions” Formal Aspects of Computing, Vol 5, No 1, 1993.

    Google Scholar 

  7. Bird, R. S. and Wadler, P. Introduction to Functional Programming. Prentice-Hall, 1988.

    Google Scholar 

  8. Broy, M. “Towards a design methodology for distributed systems”. In Constructive Methods in Computer Science. Springer-Verlag, 1988.

    Google Scholar 

  9. CIP language group. The Munich project CIP, LNCS Vol. 1, Springer-Verlag, 1984.

    Google Scholar 

  10. Dennis, J. B. “Data Flow Computations”. In Control Flow and Data Flow: Concepts of Distributed Porgramming. Springer-Verlag, 1985.

    Google Scholar 

  11. Darlington, J. “A Synthesis of Several Sorting Algorithms”. Acta Informatica, Vol. 11, No. 1, 1978.

    Google Scholar 

  12. Hoare, C. A. R. Communicating Sequential Processes. Prentice-Hall, 1985.

    Google Scholar 

  13. Hoare, C. A. R. “Algebraic Specifications and Proofs for Communicating Sequential Processes”. In Development in Concurrency and Communication. Addison Wesley, 1990.

    Google Scholar 

  14. Lengauer, C. and Hehner, E. C. R. “A methodology for programming with concurrency: an informal presentation”. Sci. Comput. Programming, Vol. 2, 1982.

    Google Scholar 

  15. Luk, W. and Jones, G. “The derivation of regular synchronous circuits”. Proc. International Conference on Systolic Arrays, San Diego, May, 1988.

    Google Scholar 

  16. Meertens L. G. L. T. (Ed) Program Specification and Transformation. North Holland. 1986

    Google Scholar 

  17. Moitra, A. “Automatic construction of CSP programs from sequential non-deterministic programs”. Science of Computer Programming, Vol. 5, No 3, 1985.

    Google Scholar 

  18. 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.

    Google Scholar 

  19. Sheeran, M. “μFP — An Algebraic VLSI Design Language”. D.Phil Thesis, (also PRG-39), Oxford University, Programming Research Group, 1983.

    Google Scholar 

  20. 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).

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Bernhard Möller

Rights and permissions

Reprints 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

Publish with us

Policies and ethics