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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Draghicescu, M., Purushothaman, S.: A uniform treatment of order of evaluation and aggregate update. Theoretical Computer Science 118(2), 231–262 (1993)
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)
Guzman, J.C., Hudak, P.: Single-threaded polymorphic lambda calculus. In: IEEE Symposium on Logic in Computer Science, pp. 333–343 (1990)
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)
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)
Odersky, M.: How to make destructive updates less destructive. In: ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages, pp. 25–26 (1991)
Sastry, A.V.S.: Efficient Array Update Analysis of Strict Functional Languages. PhD thesis, Computer and Information Science, University of Oregon (1994)
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)
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)
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)
Wadler, P.: Linear types can change the world! In: IFIP TC 2 Working Conference on Programming Concepts and Methods, pp. 347–359 (1990)
Wand, M., Clinger, W.D.: Set constraints for destructive array update optimization. Journal of Functional Programming 11(3), 319–346 (2001)
Williamson, G.B.: Flow analysis for higher-order multithreaded computations. PhD thesis, College of Computer and Information Science, Northeastern University, Boston, Massachusetts (2004)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)