Derivation of parallel algorithms from functional specifications to CSP processes

  • Ali E. Abdallah
Contributed Lectures
Part of the Lecture Notes in Computer Science book series (LNCS, volume 947)


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.


Parallel Algorithm Functional Specification Output Channel Parallel Composition Communicate Sequential Process 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [Abd94]
    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. [Brd84]
    Bird, R. S. “The Promotion and Accumulation Strategies in Transformational Programming”. ACM TOPLAS, Vol. 6, No. 4, 1984.Google Scholar
  3. [Brd86]
    Bird, R. S. “An Introduction to the Theory of Lists”. PRG-56, Oxford University, Programming Research Group, 1986.Google Scholar
  4. [Brd88]
    Bird, R. S. “Constructive functional programming”. In Constructive Methods in Computer Science, Springer-Verlag, 1988.Google Scholar
  5. [BrM86]
    Bird, R. S. and Meertens, L. G. L. T. Two Exercices Found in a Book on Algorithmics. In Program Specification and Transformation. North Holland, 1986Google Scholar
  6. [BrM93]
    Bird, R. S. and Moor, O. de “List Partitions” Formal Aspects of Computing, Vol 5, No 1, 1993.Google Scholar
  7. [BrW88]
    Bird, R. S. and Wadler, P. Introduction to Functional Programming. Prentice-Hall, 1988.Google Scholar
  8. [Bry88]
    Broy, M. “Towards a design methodology for distributed systems”. In Constructive Methods in Computer Science. Springer-Verlag, 1988.Google Scholar
  9. [CIP84]
    CIP language group. The Munich project CIP, LNCS Vol. 1, Springer-Verlag, 1984.Google Scholar
  10. [Dnn85]
    Dennis, J. B. “Data Flow Computations”. In Control Flow and Data Flow: Concepts of Distributed Porgramming. Springer-Verlag, 1985.Google Scholar
  11. [Drl78]
    Darlington, J. “A Synthesis of Several Sorting Algorithms”. Acta Informatica, Vol. 11, No. 1, 1978.Google Scholar
  12. [Hor85]
    Hoare, C. A. R. Communicating Sequential Processes. Prentice-Hall, 1985.Google Scholar
  13. [Hor90]
    Hoare, C. A. R. “Algebraic Specifications and Proofs for Communicating Sequential Processes”. In Development in Concurrency and Communication. Addison Wesley, 1990.Google Scholar
  14. [LnH82]
    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. [LkJ88]
    Luk, W. and Jones, G. “The derivation of regular synchronous circuits”. Proc. International Conference on Systolic Arrays, San Diego, May, 1988.Google Scholar
  16. [Mrt86]
    Meertens L. G. L. T. (Ed) Program Specification and Transformation. North Holland. 1986Google Scholar
  17. [Mtr85]
    Moitra, A. “Automatic construction of CSP programs from sequential non-deterministic programs”. Science of Computer Programming, Vol. 5, No 3, 1985.Google Scholar
  18. [PCS87]
    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. [Shr83]
    Sheeran, M. “μFP — An Algebraic VLSI Design Language”. D.Phil Thesis, (also PRG-39), Oxford University, Programming Research Group, 1983.Google Scholar
  20. [Trn85]
    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

Copyright information

© Springer-Verlag Berlin Heidelberg 1995

Authors and Affiliations

  • Ali E. Abdallah
    • 1
  1. 1.Department of Computer ScienceThe University of ReadingReadingUK

Personalised recommendations