Skip to main content

The Higher-Order Aggregate Update Problem

  • Conference paper

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 5403))

Abstract

We present a multi-pass interprocedural analysis and transformation for the functional aggregate update problem. Our solution handles untyped programs, including unrestricted closures and nested arrays. Also, it can handle programs that contain a mix of functional and destructive updates. Correctness of all the analyses and of the transformation itself is proved.

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

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight 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

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Draghicescu, M., Purushothaman, S.: A uniform treatment of order of evaluation and aggregate update. Theoretical Computer Science 118(2), 231–262 (1993)

    Article  MathSciNet  MATH  Google Scholar 

  2. Felleisen, M., Friedman, D.P.: A calculus for assignments in higher-order languages. In: ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages, p. 314 (1987)

    Google Scholar 

  3. Guzman, J.C., Hudak, P.: Single-threaded polymorphic lambda calculus. In: IEEE Symposium on Logic in Computer Science, pp. 333–343 (1990)

    Google Scholar 

  4. Hudak, P., Bloss, A.: The aggregate update problem in functional programming systems. In: ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages, pp. 300–314 (1985)

    Google Scholar 

  5. Hudak, P., Bloss, A.: Avoiding copying in functional and logic programming languages. In: ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages, pp. 300–314 (1985)

    Google Scholar 

  6. Odersky, M.: How to make destructive updates less destructive. In: ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages, pp. 25–26 (1991)

    Google Scholar 

  7. Sastry, A.V.S.: Efficient Array Update Analysis of Strict Functional Languages. PhD thesis, Computer and Information Science, University of Oregon (1994)

    Google Scholar 

  8. Sastry, A.V.S., Clinger, W.D., Ariola, Z.: Order-of-evaluation analysis for destructive updates in strict functional languages with flat aggregates. In: Conference on Functional Programming Languages and Computer Architecture, pp. 266–275 (1993)

    Google Scholar 

  9. Shankar, N.: Static analysis for safe destructive updates in a functional language. In: International Workshop on Logic-based Program Synthesis and Transformation, pp. 1–24 (2002)

    Google Scholar 

  10. Shivers, O.: Control-Flow Analysis of Higher-Order Languages, or Taming Lambda. PhD thesis, School of Computer Science, Carnegie Mellon University, Pittsburgh, Pennsylvania, Technical Report CMU-CS-91-145 (1991)

    Google Scholar 

  11. Wadler, P.: Linear types can change the world! In: IFIP TC 2 Working Conference on Programming Concepts and Methods, pp. 347–359 (1990)

    Google Scholar 

  12. Wand, M., Clinger, W.D.: Set constraints for destructive array update optimization. Journal of Functional Programming 11(3), 319–346 (2001)

    Article  MathSciNet  MATH  Google Scholar 

  13. Williamson, G.B.: Flow analysis for higher-order multithreaded computations. PhD thesis, College of Computer and Information Science, Northeastern University, Boston, Massachusetts (2004)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2008 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Dimoulas, C., Wand, M. (2008). The Higher-Order Aggregate Update Problem. In: Jones, N.D., Müller-Olm, M. (eds) Verification, Model Checking, and Abstract Interpretation. VMCAI 2009. Lecture Notes in Computer Science, vol 5403. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-93900-9_8

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-93900-9_8

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-93899-6

  • Online ISBN: 978-3-540-93900-9

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics