Skip to main content

A new array operation

  • Arrays
  • Conference paper
  • First Online:
Graph Reduction (GR 1986)

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

Included in the following conference series:

Abstract

A new monolithic array operation has been proposed. The operation is similar to earlier proposals, except that it uses the fold operation to combine multiple values with the same index. The new operation conveniently handles certain important kinds of computation, such as histogram, and provides parallelism in a convenient way.

This method solves the important problem of calculating histograms in a fashion suitable for parallel computation. I-structures, devised by Arvind and his colleagues, sacrifice referential transparency in order to increase the opportunities for parallelism, but do not provide a good solution to the histogram problem. I am grateful to Arvind for pointing out this defect of I-structures, which in turn inspired this paper.

Although the method presented here is useful for an important class of problems, it is not the best solution for all problems involving arrays. Further experience is needed to assess its advantages and shortcomings.

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

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Arvind, R. S. Nikhil, and K. Pengali. Id Nouveau Manual. Computation Structures Group Memo 265, MIT, 1986.

    Google Scholar 

  2. R. S. Bird. An introduction to the theory of lists. In Marktoberdorf Workshop on Logics of Programming, August 1986.

    Google Scholar 

  3. P. Hudak and A. Bloss. The aggregate update problem in functional programming systems. In 12th ACM Symposium on Principles of Programming Languages, pages 300–314, 1985.

    Google Scholar 

  4. Sören Holmström. A simple and efficient way to handle large data structures in applicative languages. In Proceedings SERC/Chalmers Workshop on Declarative Programming, University College London, 1983.

    Google Scholar 

  5. Sören Holmström. Types for unshared objects in functional programming. Chalmers University of Technology, Göteborg, Sweden, 1986. To appear.

    Google Scholar 

  6. P. Hudak. ALFL Reference Manual and Programmer's Guide. Research Report YALEU/DCS/RR-322, Second Edition, Yale University, October 1984.

    Google Scholar 

  7. P. Hudak. A semantic model of reference counting and its abstraction (detailed summary). In ACM Symposium on Lisp and Functional Programming, pages 351–363, August 1986.

    Google Scholar 

  8. R. J. M. Hughes. An efficient implementation of purely functional arrays. Technical Report, Programming Methodology Group, Chalmers University of Technology, Göteborg, Sweden, 1985.

    Google Scholar 

  9. R. Keller. Divide and CONCer. In ACM Symposium on Lisp, pages 196–202, Palo Alto, California, August 1980.

    Google Scholar 

  10. R.M. Keller. FEL programmer's guide. Technical Report AMPS TR 7, University of Utah, March 1982.

    Google Scholar 

  11. L. Meertens. Algorithmics: towards programming as a mathematical activity. In J. W. de Bakker, et. al., editor, Mathematics and Computer Science, North-Holland, 1984.

    Google Scholar 

  12. D. A. Schmidt. Detecting global variables in denotational specifications. ACM Transactions on Programming Languages and Systems, 7:299–310, 1985.

    Article  Google Scholar 

  13. M. R. Sleep and S. Holmström. A short note concerning lazy reduction rules of append. Software Practice and Experience, 12(11):1082–4, November 1982.

    Google Scholar 

  14. G. L. Steele Jr. and W. D. Hillis. Connection Machine Lisp: fine-grained parallel symbolic processing. In ACM Symposium on Lisp and Functional Programming, pages 279–297, Cambridge, Massachusetts, August 1986.

    Google Scholar 

  15. W. Stoye. The Implementation of Functional Languages using Custom Hardware. PhD thesis, Cambridge University, December 1985. Computer Laboratory Technical Report No. 81.

    Google Scholar 

  16. D. A. Turner. Recursion equations as a programming language. In J. Darlington, P. Henderson, and D. Turner, editors, Functional Programming and Its Applications, Cambridge University Press, 1981.

    Google Scholar 

  17. D. A. Turner. Miranda: A non-strict functional language with polymorphic types. In Proceedings of the Conference on Functional Programming Languages and Computer Architecture, Springer-Verlag, September 1985.

    Google Scholar 

  18. D. A. Turner. Applicative arrays—an alternative proposal. Technical Memo, Burroughs Austin Research Center, April 1986.

    Google Scholar 

  19. D. S. Wise. Representing matrices as quadtrees for parallel processors. Information Processing Letters, 20:195–199, May 1985.

    Article  Google Scholar 

  20. D. S. Wise. Parallel decomposition of matrix inversion using quadtrees. In International Conference on Parallel Processing, pages 92–99, 1986. (IEEE Cat. No. 86CH2355-6).

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Joseph H. Fasel Robert M. Keller

Rights and permissions

Reprints and permissions

Copyright information

© 1987 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Wadler, P. (1987). A new array operation. In: Fasel, J.H., Keller, R.M. (eds) Graph Reduction. GR 1986. Lecture Notes in Computer Science, vol 279. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-18420-1_64

Download citation

  • DOI: https://doi.org/10.1007/3-540-18420-1_64

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-18420-1

  • Online ISBN: 978-3-540-47963-5

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics