Skip to main content

Advertisement

SpringerLink
Log in
Menu
Find a journal Publish with us Track your research
Search
Cart
Book cover

European Symposium on Programming

ESOP 2007: Programming Languages and Systems pp 458–474Cite as

  1. Home
  2. Programming Languages and Systems
  3. Conference paper
A Consistent Semantics of Self-adjusting Computation

A Consistent Semantics of Self-adjusting Computation

  • Umut A. Acar1,
  • Matthias Blume1 &
  • Jacob Donham2 
  • Conference paper
  • 973 Accesses

  • 4 Citations

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

Abstract

This paper presents a semantics of self-adjusting computation and proves that the semantics is correct and consistent. The semantics integrates change propagation with the classic idea of memoization to enable reuse of computations under mutation to memory. During evaluation, reuse of a computation via memoization triggers a change propagation that adjusts the reused computation to reflect the mutated memory. Since the semantics combines memoization and change-propagation, it involves both non-determinism and mutation. Our consistency theorem states that the non-determinism is not harmful: any two evaluations of the same program starting at the same state yield the same result. Our correctness theorem states that mutation is not harmful: self-adjusting programs are consistent with purely functional programming. We formalized the semantics and its meta-theory in the LF logical framework and machine-checked the proofs in Twelf.

Keywords

  • Stable Expression
  • Change Propagation
  • Abstract Syntax
  • Functional Programming
  • Valid Evaluation

These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Chapter PDF

Download to read the full chapter text

References

  1. Abadi, M., Lampson, B.W., Levy, J.-J.: Analysis and caching of dependencies. In: International Conference on Functional Programming, pp. 83–91 (1996), citeseer.nj.nec.com/abadi96analysis.html

  2. Acar, U.A.: Self-Adjusting Computation. PhD thesis, Department of Computer Science, Carnegie Mellon University (May 2005)

    Google Scholar 

  3. Acar, U.A., et al.: An experimental analysis of self-adjusting computation. In: Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation, ACM Press, New York (2006)

    Google Scholar 

  4. Acar, U.A., Blelloch, G.E., Harper, R.: Adaptive functional programming. In: Proc. of the 29th Ann. ACM Symp. on POPL, pp. 247–259. ACM Press, New York (2002), citeseer.nj.nec.com/article/acar01adaptive.html

    Google Scholar 

  5. Acar, U.A., Blelloch, G.E., Harper, R.: Selective memoization. In: Proc. of the 30th Annual ACM Symposium on Principles of Programming Languages, ACM Press, New York (2003)

    Google Scholar 

  6. Acar, U.A., et al.: Dynamizing static algorithms with applications to dynamic trees and history independence. In: ACM-SIAM Symposium on Discrete Algorithms (SODA), ACM Press, New York (2004)

    Google Scholar 

  7. Acar, U.A., et al.: Kinetic algorithms via self-adjusting computation. Technical Report CMU-CS-06-115, Department of Computer Science, Carnegie Mellon University (March 2006)

    Google Scholar 

  8. Acar, U.A., Blelloch, G.E., Vittes, J.L.: An experimental analysis of change propagation in dynamic trees. In: Workshop on Algorithm Engineering and Experimentation (2005)

    Google Scholar 

  9. Acar, U.A., Blume, M., Donham, J.: A consistent semantics of self-adjusting computation. Technical Report CMU-CS-06-168, Department of Computer Science, Carnegie Mellon University (2006)

    Google Scholar 

  10. Carlsson, M.: Monads for incremental computing. In: Proc. of the 7th ACM SIGPLAN Intl. Conf. on Funct. Prog., Pittsburgh, PA, USA, pp. 26–35. ACM Press, New York (2002), doi:10.1145/581478.581482

    Google Scholar 

  11. Demers, A., Reps, T., Teitelbaum, T.: Incremental evaluation of attribute grammars with application to syntax directed editors. In: Proceedings of the 8th Annual ACM Symposium on Principles of Programming Languages, pp. 105–116. ACM Press, New York (1981)

    CrossRef  Google Scholar 

  12. Field, J., Teitelbaum, T.: Incremental reduction in the lambda calculus. In: Proceedings of the ACM ’90 Conference on LISP and Functional Programming, June 1990, pp. 307–322. ACM Press, New York (1990)

    CrossRef  Google Scholar 

  13. Harper, R., Honsell, F., Plotkin, G.: A framework for defining logics. Journal of the Association for Computing Machinery 40(1), 143–184 (1993)

    MATH  MathSciNet  Google Scholar 

  14. Harper, R., Licata, D.: Mechanizing language definitions (Submitted for publication) (April 2006)

    Google Scholar 

  15. Michie, D.: ’Memo’ functions and machine learning. Nature 218, 19–22 (1968)

    CrossRef  Google Scholar 

  16. Pfenning, F.: System description: Twelf — a meta-logical framework for deductive systems. In: Ganzinger, H. (ed.) CADE 1999. LNCS (LNAI), vol. 1632, pp. 202–206. Springer, Heidelberg (1999)

    CrossRef  Google Scholar 

  17. Pugh, W., Teitelbaum, T.: Incremental computation via function caching. In: Proceedings of the 16th Annual ACM Symposium on Principles of Programming Languages, pp. 315–328. ACM Press, New York (1989)

    CrossRef  Google Scholar 

  18. Ramalingam, G., Reps, T.: A categorized bibliography on incremental computation. In: Conference Record of the 20th Annual ACM Symposium on POPL, Jan. 1993, pp. 502–510. ACM Press, New York (1993)

    Google Scholar 

  19. Sundaresh, R.S., Hudak, P.: Incremental compilation via partial evaluation. In: Conf. Record of the 18th Ann. ACM Symp. on POPL, Jan. 1991, pp. 1–13. ACM Press, New York (1991)

    Google Scholar 

Download references

Author information

Authors and Affiliations

  1. Toyota Technological Institute,  

    Umut A. Acar & Matthias Blume

  2. Carnegie Mellon University,  

    Jacob Donham

Authors
  1. Umut A. Acar
    View author publications

    You can also search for this author in PubMed Google Scholar

  2. Matthias Blume
    View author publications

    You can also search for this author in PubMed Google Scholar

  3. Jacob Donham
    View author publications

    You can also search for this author in PubMed Google Scholar

Editor information

Rocco De Nicola

Rights and permissions

Reprints and Permissions

Copyright information

© 2007 Springer Berlin Heidelberg

About this paper

Cite this paper

Acar, U.A., Blume, M., Donham, J. (2007). A Consistent Semantics of Self-adjusting Computation. In: De Nicola, R. (eds) Programming Languages and Systems. ESOP 2007. Lecture Notes in Computer Science, vol 4421. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-71316-6_31

Download citation

  • .RIS
  • .ENW
  • .BIB
  • DOI: https://doi.org/10.1007/978-3-540-71316-6_31

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-71314-2

  • Online ISBN: 978-3-540-71316-6

  • eBook Packages: Computer ScienceComputer Science (R0)

Share this paper

Anyone you share the following link with will be able to read this content:

Sorry, a shareable link is not currently available for this article.

Provided by the Springer Nature SharedIt content-sharing initiative

Publish with us

Policies and ethics

search

Navigation

  • Find a journal
  • Publish with us
  • Track your research

Discover content

  • Journals A-Z
  • Books A-Z

Publish with us

  • Publish your research
  • Open access publishing

Products and services

  • Our products
  • Librarians
  • Societies
  • Partners and advertisers

Our imprints

  • Springer
  • Nature Portfolio
  • BMC
  • Palgrave Macmillan
  • Apress
  • Your US state privacy rights
  • Accessibility statement
  • Terms and conditions
  • Privacy policy
  • Help and support
  • Cancel contracts here

167.114.118.210

Not affiliated

Springer Nature

© 2023 Springer Nature