Skip to main content

Efficient Parallel Recursion

  • Chapter
The Origin of Concurrent Programming
  • 591 Accesses

Abstract

A simple mechanism is proposed for dynamic memory allocation of a parallel recursive program with Algol-like scope rules. The method is about as fast as the traditional stack discipline for sequential languages. It has been used to implement the parallel programming language SuperPascal.

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 84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 139.00
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 109.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

  • Andrews, G.R. 1981. Synchronizing resources. ACM Transactions on Programming Languages and Systems 3, 4 (October), 405–430.

    Article  MATH  Google Scholar 

  • Brinch Hansen, P. 1975. The programming language Concurrent Pascal. IEEE Transactions on Software Enginering 1, 2 (June), 199–207.

    Article  Google Scholar 

  • Brinch Hansen, P. 1978. Distributed processes: A concurrent programming concept. Communications of the ACM 21, 11 (November), 934–941.

    Article  MATH  Google Scholar 

  • Brinch Hansen, P. 1981. Edison-a multiprocessor language. Software-Practice and Experience 11, 4 (April), 325–361.

    Article  MATH  Google Scholar 

  • Brinch Hansen, P. 1989. A multiprocessor implementation of Joyce. Software-Practice and Experience 9, 6 (June), 579–592.

    Article  Google Scholar 

  • Brinch Hansen, P. 1994. The programming language SuperPascal. Software-Practice and Experience 24, 5 (May), 467–483.

    Article  Google Scholar 

  • Brinch Hansen, P. 1995. Studies in Computational Science: Parallel Programming Paradigms. Prentice Hall, Englewood Cliffs, NJ, (March).

    Google Scholar 

  • Cook, R. 1980. *Mod-a language for distributed programming. IEEE Transactions on Software Engineering 6, 6 (November), 563–571.

    Article  MATH  Google Scholar 

  • Crookes, D. and Elder, J.W.G. 1984. An experiment in language design for distributed systems. Software-Practice and Experience 14, 10 (October), 957–971.

    Article  MATH  Google Scholar 

  • Davies G.L. and Burns, A. 1990. The teaching language Pascal-FC. Computer Journal 33, 147–154.

    Article  Google Scholar 

  • Dijkstra, E.W. 1960. Recursive programming. Numerische Mathematik 2, 312–318.

    Article  MathSciNet  MATH  Google Scholar 

  • Fox, G.C., Johnson, M.A., Lyzenga, G.A., Otto, S.W., Salmon, J.K. and Walker, D.W. 1988. Solving Problems on Concurrent Processors, Vol. I. Prentice Hall, Englewood Cliffs, NJ.

    Google Scholar 

  • Fox, G.C., Messina, P.C. and Williams, R.D. 1994. Parallel Computing Works! Morgan Kaufman, San Francisco, CA.

    Google Scholar 

  • Hoare, C.A.R. 1978. Communicating sequential processes. Communications of the ACM 21, 8 (August), 666–677.

    Article  MathSciNet  MATH  Google Scholar 

  • Holt, R.C. 1983. Concurrent Euclid, the Unix Operating System and Tunis. Addison-Wesley, Reading, MA.

    Google Scholar 

  • Inmos Ltd. 1988. occam 2 Reference Manual. Prentice Hall, Englewood Cliffs, NJ.

    Google Scholar 

  • Kaubisch, W.H., Perrott, R.H. and Hoare, C.A.R. 1976. Quasiparallel programming. Software-Practice and Experience 6, 3 (July-September), 341–356.

    Article  MATH  Google Scholar 

  • Kernighan, B.W. and Ritchie, D.M. 1978. The C Programming Language. Prentice Hall, Englewood Cliffs, NJ.

    Google Scholar 

  • Lampson, B.W. and Redell, D.D. 1980. Experience with processes and monitors in Mesa. Communications of the ACM 23, 2 (February), 105–117.

    Article  Google Scholar 

  • Naur, P. 1963. Revised report on the algorithmic language Algol 60. Communications of the ACM 6, 1 (January), 1–17.

    Article  Google Scholar 

  • Organick, E.I. 1973. Computer System Organization: The B5700/B6700 Series. Academic Press, New York.

    Google Scholar 

  • Weinstock, C.B., and Wulf, W.A. 1988. Quick Fit: an efficient algorithm for heap storage management. SIGPLAN Notices 23, 10 (October), 141–148.

    Article  Google Scholar 

  • Welsh, J. and Bustard, D.W. 1979. Pascal-Plus-another language for modular multiprogramming. Software-Practice and Experience 9, 11 (November), 947–957.

    Article  MATH  Google Scholar 

  • Wirth, N. 1971. The programming language Pascal. Acta Informatica 1, 1, 35–63.

    Article  MathSciNet  MATH  Google Scholar 

  • Wirth, N. 1977. Modula: a programming language for modular multiprogramming. Software—Practice and Experience 7, 1 (January—February), 3–35.

    MathSciNet  MATH  Google Scholar 

Download references

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1995 Per Brinch Hansen

About this chapter

Cite this chapter

Hansen, P.B. (1995). Efficient Parallel Recursion. In: Hansen, P.B. (eds) The Origin of Concurrent Programming. Springer, New York, NY. https://doi.org/10.1007/978-1-4757-3472-0_20

Download citation

  • DOI: https://doi.org/10.1007/978-1-4757-3472-0_20

  • Publisher Name: Springer, New York, NY

  • Print ISBN: 978-1-4419-2986-0

  • Online ISBN: 978-1-4757-3472-0

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics