Skip to main content

Part of the book series: The Springer International Series In Engineering and Computer Science ((SECS,volume 231))

Abstract

The idea of a rigorous and formal methodology for program development has been successfully applied to sequential programs. In this paper we explore possibilities for adapting this methodology to the derivation of parallel programs. Particular emphasis is given to two questions: How can the partitioning of the data space be expressed on a high and abstract level? Which kinds of functional forms do lead in a natural way to parallel implementations?

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 129.00
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 169.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 169.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Aiken, A., Nicolau, A.: Perfect Pipelining: A New Loop Parallelization Technique. In: Proc. ESOP. Berlin: Springer 1988.

    Google Scholar 

  2. Baccelli, F., Fleury, T.: On Parsing Arithmetic Expressions in a Multi-Processing Environment. Acta Informatica 17, 1982, 287–310.

    Article  MATH  Google Scholar 

  3. Bar-On, I., Vishkin, U.: Optimal Parallel Generation of a Computation Tree Form. ACM Trans. Prog. Lang. and Systems 7:2, 1985, 348–357.

    Article  MATH  Google Scholar 

  4. Bauer, F.L., Wössner, H.: Algorithmic Language And Program Development. Berlin: Springer 1982.

    MATH  Google Scholar 

  5. Bird, R.: Lectures on Constructive Funtional Programming. In: Broy, M. (ed.): Constructive Methods in Computing Science. Proc. Int. Summer School, Berlin: Springer 1989.

    Google Scholar 

  6. Bode, A. (ed.): Distributed Memory Computing. Proc. 2nd European Conf. EDMCC2, Munich, April 1991, Lecture Notes in Computer Science 487. Berlin: Springer 1991.

    MATH  Google Scholar 

  7. Broy, M.: A Theory For Nondeterminism, Parallelism, Communications, and Concurrency. Theor. Comp. Sc. 45, 1–61 (1986).

    Article  MATH  Google Scholar 

  8. Cole, M.: Algorithmic Skeletons: Structured Management of Parallel Computation. Pitman/MIT Press, 1989.

    Google Scholar 

  9. Cormen, T.H., Leiserson, C.E:, Rivest, R.L.: Introduction to Algorithms. Cambridge: MIT Press and New York: McGraw-Hill, 1991.

    Google Scholar 

  10. Darlington, J., Field, A.J., Harrison, P.G., Kelly, P.H.J., While, R.L., Wu, Q.: Parallel Programming Using Skeleton Functions. Techn. Rep. Dept. of Computing, Imperial College, London, May 26, 1992.

    Google Scholar 

  11. Fernandez, A., Llaberia, J.M., Navarro, J.J., Valero-Garcia, M.: Interleaving Partitions of Systolic Algorithms for Programming Distributed Memory Multiprocessors. In Bode, A. (ed.): Distributed Memory Computing. Proc. 2nd European Conf. EDMCC2, Munich, April 1991, Lecture Notes in Computer Science 487. Berlin: Springer 1991.

    Google Scholar 

  12. Gallager, R.G., Humblet, P.A., Spira, P.M.: A Distributed Algorithm for Minimum-Weight Spanning Trees. ACM TOPLAS 5:1 (1983) 66–77.

    Article  MATH  Google Scholar 

  13. Gibbons, A., Rytter, W.: Efficient Parallel Algorithms. Cambridge: Cambridge University Press1988.

    MATH  Google Scholar 

  14. Gomm, D., Heckner, M., Lange, K.-J., and Riedle, G.: On the Design of Parallel Programs for Machines with Distributed Memory. In: Bode, A. (ed.): Distributed Memory Computing. Proc. 2nd European Conf. EDMCC2, Munich, April 1991, Lecture Notes in Computer Science 487. Berlin: Springer 1991, 381–391.

    Google Scholar 

  15. Gries, D.: The Science of Programming. New York: Springer 1981.

    MATH  Google Scholar 

  16. Knapp, E.: An Exercise in the Formal Derivation of Parallel Programs:Maximum Flow in Graphs. ACM TOPLAS 12:2 (1990) 203–223.

    Article  Google Scholar 

  17. Nicolau, A., Wang, H.: Optimal Schedules for Parallel Prefix Computation with Bounded Resources. In: 3rd ACM SIGPLAN Symp. n Principles & Practice of Parallel Programming, SIGPLAN Notices 26:7, July 1991, 1–10.

    Article  Google Scholar 

  18. op den Akker, R., Albas, H., Nijholt, A., Ou de Luttighuis, P.: An Annotaded Bibliography on Parallel Parsing. Universiteit Twente, faculteit der informatica, Memoranda Informatica 89-67, Dec. 1989.

    Google Scholar 

  19. Partsch, H.: Specification And Transformation of Programs. Berlin: Springer 1990.

    MATH  Google Scholar 

  20. Pepper, P., Möller, B.: Programming With (Finite) Mappings. In: M. Broy (ed.): Informatik und Mathematik. Berlin: Springer 1991. 381–405.

    Google Scholar 

  21. Pepper, P., Schulte, W.: Some Experiments on the Optimal Compilation of Applicative Programs. In: M. Bettaz (ed.): Proc. First Maghrebinian Seminar on Sofware Engineering and Artifiacial Intelligence, Constantine, Algeria, Sept. 1989.

    Google Scholar 

  22. Pepper, P.: Specification Languages and Program Transformation. In: Reid, J.K. (ed.): Relationship between Numerical Computation and Programming Languages. Proc. IFIP WG 2.5 Conf., Boulder 1981. Amsterdam, North-Holland 1982, 331–346.

    Google Scholar 

  23. Pepper, P.: Literate program derivation: A case study. Broy, M., Wirsing, M. (Eds.): Methodik des Programmierens. Lecture Notes in Computer Science 544, Berlin: Springer 1991, 101–124.

    Chapter  Google Scholar 

  24. Pepper, P.: Grundlagen des Übersetzerbaus. Course manuscript, Techn. Univ. Berlin, 1991.

    Google Scholar 

  25. Quinn, M.J.: Designing Efficient Algorithms for Parallel Computers. New York: McGraw-Hill 1987.

    MATH  Google Scholar 

  26. Schulte, W., Grieskamp, W.: Generating Efficient Portable Code for a Strict Applicative Language. To appear in Proc. Phoenix Seminar and Workshop on Declarative Programming, Hohritt, Germany, Nov. 1991.

    Google Scholar 

  27. Tel, G., Tan, R.B., van Leeuwen, J.: The Derivation of Graph Marking Algorithms from Distributed Termination Detection Protocols. Science of Comp. Progr. 10 (1988) 107–137.

    Article  MATH  Google Scholar 

  28. Wile, D.: Local Formalisms: Widening the Spectrum of Wide-Spectrum Languages. In: Meertens, L.G.L.T. (ed.): Proc. IFIP TC2 Working Conf. on Program Specification and Transformation, Bad Tölz. Noth-Holland 1986, 459–481.

    Google Scholar 

  29. Yang, J.A., Choo, Y.: Parallel-Program Transformation Using a Metalanguage. In: 3rd ACM SIGPLAN Symp. n Principles & Practice of Parallel Programming, SIGPLAN Notices 26:7, July 1991, 11–20.

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1993 Kluwer Academic Publishers

About this chapter

Cite this chapter

Pepper, P. (1993). Deductive Derivation of Parallel Programs. In: Paige, R., Reif, J., Watcher, R. (eds) Parallel Algorithm Derivation and Program Transformation. The Springer International Series In Engineering and Computer Science, vol 231. Springer, Boston, MA. https://doi.org/10.1007/978-0-585-27330-3_1

Download citation

  • DOI: https://doi.org/10.1007/978-0-585-27330-3_1

  • Publisher Name: Springer, Boston, MA

  • Print ISBN: 978-0-7923-9362-7

  • Online ISBN: 978-0-585-27330-3

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics