skip to main content
article
Free Access

Efficient parallel recursion

Authors Info & Claims
Published:01 December 1995Publication History
Skip Abstract Section

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.

References

  1. 1. Andrews, G.R. (1981) Synchronizing resources. ACM Trans. Programming Languages and Systems, 3, 405-430. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. 2. Brinch Hansen, P. (1975) The programming language Concurrent Pascal. IEEE Trans. Software Eng., 1, 199-207.Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. 3. Brinch Hansen, P. (1978) Distributed processes: a concurrent programming concept. CACM, 21, 934-941. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. 4. Brinch Hansen, P. (1981) Edison--a multiprocessor language. Software--Practice and Experience, 11, 325-361.Google ScholarGoogle ScholarCross RefCross Ref
  5. 5. Brinch Hansen, P. (1989) A multiprocessor implementation of Joyce. Software-- Practice and Experience, 19, 579-592. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. 6. Brinch Hansen, P. (1994) The programming language SuperPascal. Software--Practice and Experience, 24, 467-483. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. 7. Brinch Hansen, P. (1995) Studies in Computational Science: Parallel Programming Paradigms. Prentice Hall, Englewood Cliffs, NJ. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. 8. Cook, R. (1980) *Mod--a language for distributed programming. IEEE Trans. Software Eng., 6, 563-571.Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. 9. Crookes, D. and Elder, J.W.G. (1984) An experiment in language design for distributed systems. Software--Practice and Experience, 14, 957-971.Google ScholarGoogle ScholarCross RefCross Ref
  10. 10. Davies G.L. and Burns, A. (1990) The teaching language Pascal-FC. Computer Journal , 33, 147-154. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. 11. Dijkstra, E.W. (1960) Recursive programming. Numerische Mathematik, 2, 312-318.Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. 12. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  13. 13. Fox, G.C., Messina, P.C. and Williams, R.D. (1994) Parallel Computing Works! Morgan Kaufman, San Francisco, CA.Google ScholarGoogle Scholar
  14. 14. Hoare, C.A.R. (1978) Communicating sequential processes. CACM, 21, 666-677. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. 15. Holt, R.C. (1983) Concurrent Euclid, the Unix Operating System and Tunis. Addison-Wesley, Reading, MA.Google ScholarGoogle Scholar
  16. 16. Inmos Ltd (1988) occam 2 Reference Manual. Prentice Hall, Englewood Cliffs, NJ.Google ScholarGoogle Scholar
  17. 17. Kaubisch, W.H., Perrott, R.H. and Hoare, C.A.R. (1976) Quasiparallel programming. Software--Practice and Experience, 6, 341-356.Google ScholarGoogle ScholarCross RefCross Ref
  18. 18. Kernighan, B.W. and Ritchie, D.M. (1978) The C Programming Language. Prentice Hall, Englewood Cliffs, NJ. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. 19. Lampson, B.W. and Redell, D.D. (1980) Experience with processes and monitors in Mesa. CACM, 23, 105-117. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. 20. Naur, P. (1963) Revised report on the algorithmic language Algol 60. CACM, 6, 1-17. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. 21. Organick, E.I. (1973) Computer System Organization: The B5700//B6700 Series. Academic Press, New York. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. 22. Weinstock, C.B., and Wulf, W.A. (1988) Quick Fit: an efficient algorithm for heap storage management. SIGPLAN Notices 23, 10 (October), 141-148. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. 23. Welsh, J. and Bustard, D.W. (1979) Pascal-Plus--another language for modular multiprogramming. Software--Practice and Experience, 9, 947-957.Google ScholarGoogle ScholarCross RefCross Ref
  24. 24. Wirth, N. (1971) The programming language Pascal. Acta Informatica, 1, 35-63.Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. 25. Wirth, N. (1977) Modula: a programming language for modular multiprogramming. Software--Practice and Experience, 7, 3-35.Google ScholarGoogle ScholarCross RefCross Ref

Index Terms

  1. Efficient parallel recursion

                Recommendations

                Comments

                Login options

                Check if you have access through your login credentials or your institution to get full access on this article.

                Sign in

                Full Access

                • Published in

                  cover image ACM SIGPLAN Notices
                  ACM SIGPLAN Notices  Volume 30, Issue 12
                  Dec. 1995
                  55 pages
                  ISSN:0362-1340
                  EISSN:1558-1160
                  DOI:10.1145/219726
                  Issue’s Table of Contents

                  Copyright © 1995 Author

                  Publisher

                  Association for Computing Machinery

                  New York, NY, United States

                  Publication History

                  • Published: 1 December 1995

                  Check for updates

                  Qualifiers

                  • article

                PDF Format

                View or Download as a PDF file.

                PDF

                eReader

                View online with eReader.

                eReader