Advertisement

Self-adjusting Computation with Delta ML

  • Umut A. Acar
  • Ruy Ley-Wild
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5832)

Abstract

In self-adjusting computation, programs respond automatically and efficiently to modifications to their data by tracking the dynamic data dependences of the computation and incrementally updating the output as needed. In this tutorial, we describe the self-adjusting-computation model and present the language ΔML (Delta ML) for writing self-adjusting programs.

Keywords

Minimum Span Tree Change Propagation Adaptive Function Dynamic Tree Input List 
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.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Abadi, M., Lampson, B.W., Lévy, J.-J.: Analysis and Caching of Dependencies. In: Proceedings of the International Conference on Functional Programming, pp. 83–91 (1996)Google Scholar
  2. 2.
    Acar, U.A.: Self-Adjusting Computation. PhD thesis, Department of Computer Science. Carnegie Mellon University (May 2005)Google Scholar
  3. 3.
    Acar, U.A., Ahmed, A., Blume, M.: Imperative self-adjusting computation. In: Proceedings of the 25th Annual ACM Symposium on Principles of Programming Languages (2008)Google Scholar
  4. 4.
    Acar, U.A., Blelloch, G.E., Blume, M., Tangwongsan, K.: An experimental analysis of self-adjusting computation. In: Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (2006)Google Scholar
  5. 5.
    Acar, U.A., Blelloch, G.E., Harper, R.: Adaptive Functional Programming. In: Proceedings of the 29th Annual ACM Symposium on Principles of Programming Languages, pp. 247–259 (2002)Google Scholar
  6. 6.
    Acar, U.A., Blelloch, G.E., Harper, R.: Selective memoization. In: Proceedings of the 30th Annual ACM Symposium on Principles of Programming Languages (2003)Google Scholar
  7. 7.
    Acar, U.A., Blelloch, G.E., Harper, R., Vittes, J.L., Woo, M.: Dynamizing static algorithms with applications to dynamic trees and history independence. In: ACM-SIAM Symposium on Discrete Algorithms (2004)Google Scholar
  8. 8.
    Acar, U.A., Blelloch, G.E., Tangwongsan, K.: Kinetic 3D Convex Hulls via Self-Adjusting Computation (An Illustration). In: Proceedings of the 23rd ACM Symposium on Computational Geometry, SCG (2007)Google Scholar
  9. 9.
    Acar, U.A., Blelloch, G.E., Tangwongsan, K., Türkoğlu, D.: Robust Kinetic Convex Hulls in 3D. In: Proceedings of the 16th Annual European Symposium on Algorithms (September 2008)Google Scholar
  10. 10.
    Acar, U.A., Blelloch, G.E., Tangwongsan, K., Vittes, J.L.: Kinetic Algorithms via Self-Adjusting Computation. In: Proceedings of the 14th Annual European Symposium on Algorithms, September 2006, pp. 636–647 (2006)Google Scholar
  11. 11.
    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
  12. 12.
    Acar, U.A., Blume, M., Donham, J.: A consistent semantics of self-adjusting computation. In: De Nicola, R. (ed.) ESOP 2007. LNCS, vol. 4421, pp. 458–474. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  13. 13.
    Acar, U.A., Ihler, A., Mettu, R., Sümer, Ö.: Adaptive Bayesian Inference. In: Neural Information Processing Systems, NIPS (2007)Google Scholar
  14. 14.
    Acar, U.A., Ihler, A., Mettu, R., Sümer, Ö.: Adaptive Inference on General Graphical Models. In: Uncertainty in Artificial Intelligence, UAI (2008)Google Scholar
  15. 15.
    Agarwal, P.K., Guibas, L.J., Edelsbrunner, H., Erickson, J., Isard, M., Har-Peled, S., Hershberger, J., Jensen, C., Kavraki, L., Koehl, P., Lin, M., Manocha, D., Metaxas, D., Mirtich, B., Mount, D., Muthukrishnan, S., Pai, D., Sacks, E., Snoeyink, J., Suri, S., Wolefson, O.: Algorithmic issues in modeling motion. ACM Comput. Surv. 34(4), 550–572 (2002)CrossRefGoogle Scholar
  16. 16.
    Alexandron, G., Kaplan, H., Sharir, M.: Kinetic and dynamic data structures for convex hulls and upper envelopes. In: Dehne, F., López-Ortiz, A., Sack, J.-R. (eds.) WADS 2005. LNCS, vol. 3608, pp. 269–281. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  17. 17.
    Alstrup, S., Holm, J., de Lichtenberg, K., Thorup, M.: Minimizing diameters of dynamic trees. In: Automata, Languages and Programming, pp. 270–280 (1997)Google Scholar
  18. 18.
    Alstrup, S., Holm, J., de Lichtenberg, K., Thorup, M.: Maintaining information in fully-dynamic trees with top trees. In: The Computing Research Repository, CoRR (2003), (cs.DS/0310065)Google Scholar
  19. 19.
    Basch, J., Guibas, L.J., Hershberger, J.: Data structures for mobile data. In: Proceedings of the eighth annual ACM-SIAM symposium on Discrete algorithms. Society for Industrial and Applied Mathematics, pp. 747–756 (1997)Google Scholar
  20. 20.
    Basch, J., Guibas, L.J., Hershberger, J.: Data structures for mobile data. Journal of Algorithms 31(1), 1–28 (1999)MathSciNetCrossRefzbMATHGoogle Scholar
  21. 21.
    Bellman, R.: Dynamic Programming. Princeton University Press, Princeton (1957)zbMATHGoogle Scholar
  22. 22.
    Brodal, G.S., Jacob, R.: Dynamic planar convex hull. In: Proceedings of the 43rd Annual IEEE Symposium on Foundations of Computer Science, pp. 617–626 (2002)Google Scholar
  23. 23.
    Carlsson, M.: Monads for Incremental Computing. In: Proceedings of the 7th ACM SIGPLAN International Conference on Functional programming, pp. 26–35. ACM Press, New York (2002)Google Scholar
  24. 24.
    Chan, T.M.: Dynamic planar convex hull operations in near-logarithmic amortized time. In: Proceedings of the the 40th Annual IEEE Symposium on Foundations of Computer Science (FOCS), pp. 92–99 (1999)Google Scholar
  25. 25.
    Chiang, Y.-J., Tamassia, R.: Dynamic algorithms in computational geometry. Proceedings of the IEEE 80(9), 1412–1434 (1992)CrossRefGoogle Scholar
  26. 26.
    Cohen, R.F., Tamassia, R.: Dynamic expression trees and their applications. In: Proceedings of the 2nd Annual ACM-SIAM Symposium on Discrete Algorithms, pp. 52–61 (1991)Google Scholar
  27. 27.
    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 (1981)Google Scholar
  28. 28.
    Eppstein, D.: Average case analysis of dynamic geometric optimization. In: SODA 1994: Proceedings of the fifth annual ACM-SIAM symposium on Discrete algorithms, Philadelphia, PA, USA. Society for Industrial and Applied Mathematics, pp. 77–86 (1994)Google Scholar
  29. 29.
    Eppstein, D.: Incremental and decremental maintenance of planar width. In: SODA 1999: Proceedings of the tenth annual ACM-SIAM symposium on Discrete algorithms, Philadelphia, PA, USA. Society for Industrial and Applied Mathematics, pp. 899–900 (1999)Google Scholar
  30. 30.
    Eppstein, D., Galil, Z., Italiano, G.F.: Dynamic graph algorithms. In: Atallah, M.J. (ed.) Algorithms and Theory of Computation Handbook, ch. 8. CRC Press, Boca Raton (1999)Google Scholar
  31. 31.
    Eppstein, D., Galil, Z., Italiano, G.F., Nissenzweig, A.: Sparsification—a technique for speeding up dynamic graph algorithms. Journal of the ACM 44(5), 669–696 (1997)MathSciNetCrossRefzbMATHGoogle Scholar
  32. 32.
    Field, J., Teitelbaum, T.: Incremental reduction in the lambda calculus. In: Proceedings of the ACM 1990 Conference on LISP and Functional Programming, June 1990, pp. 307–322 (1990)Google Scholar
  33. 33.
    Field, J.: Incremental Reduction in the Lambda Calculus and Related Reduction Systems. PhD thesis, Department of Computer Science, November 1991. Cornell University (1991)Google Scholar
  34. 34.
    Frederickson, G.N.: Data structures for on-line updating of minimum spanning trees, with applications. SIAM Journal on Computing 14, 781–798 (1985)MathSciNetCrossRefzbMATHGoogle Scholar
  35. 35.
    Frederickson, G.N.: A data structure for dynamically maintaining rooted trees. Journal of Algorithms 24(1), 37–65 (1997)MathSciNetCrossRefzbMATHGoogle Scholar
  36. 36.
    Guibas, L.: Modeling motion. In: Goodman, J., O’Rourke, J. (eds.) Handbook of Discrete and Computational Geometry, 2nd edn., pp. 1117–1134. Chapman and Hall/CRC (2004)Google Scholar
  37. 37.
    Guibas, L., Russel, D.: An empirical comparison of techniques for updating delaunay triangulations. In: SCG 2004: Proceedings of the twentieth annual symposium on Computational geometry, pp. 170–179. ACM Press, New York (2004)CrossRefGoogle Scholar
  38. 38.
    Hammer, M.A., Acar, U.A.: Memory management for self-adjusting computation. In: ISMM 2008: Proceedings of the 7th international symposium on Memory management, pp. 51–60 (2008)Google Scholar
  39. 39.
    Hammer, M.A., Acar, U.A., Chen, Y.: CEAL: A C-based language for self-adjusting computation. In: Proceedings of the 2009 ACM SIGPLAN Conference on Programming Language Design and Implementation (June 2009)Google Scholar
  40. 40.
    Henzinger, M.R., King, V.: Randomized fully dynamic graph algorithms with polylogarithmic time per operation. Journal of the ACM 46(4), 502–516 (1999)MathSciNetCrossRefzbMATHGoogle Scholar
  41. 41.
    Henzinger, M.R., King, V.: Maintaining minimum spanning trees in dynamic graphs. In: Degano, P., Gorrieri, R., Marchetti-Spaccamela, A. (eds.) ICALP 1997. LNCS, vol. 1256, pp. 594–604. Springer, Heidelberg (1997)CrossRefGoogle Scholar
  42. 42.
    Hershberger, J., Suri, S.: Applications of a semi-dynamic convex hull algorithm. BIT 32(2), 249–267 (1992)MathSciNetCrossRefzbMATHGoogle Scholar
  43. 43.
    Heydon, A., Levin, R., Yu, Y.: Caching Function Calls Using Precise Dependencies. In: Proceedings of the 2000 ACM SIGPLAN Conference on Programming Language Design and Implementation, pp. 311–320 (2000)Google Scholar
  44. 44.
    Holm, J., de Lichtenberg, K., Thorup, M.: Poly-logarithmic deterministic fully-dynamic algorithms for connectivity, minimum spanning tree, 2-edge, and biconnectivity. Journal of the ACM 48(4), 723–760 (2001)MathSciNetCrossRefzbMATHGoogle Scholar
  45. 45.
    Hoover, R.: Incremental Graph Evaluation. PhD thesis, Department of Computer Science. Cornell University (May 1987)Google Scholar
  46. 46.
    Janardan, R.: On maintaining the width and diameter of a planar point-set online. In: Hsu, W.-L., Lee, R.C.T. (eds.) ISA 1991. LNCS, vol. 557, pp. 137–149. Springer, Heidelberg (1991)CrossRefGoogle Scholar
  47. 47.
    Ley-Wild, R., Acar, U.A., Fluet, M.: A cost semantics for self-adjusting computation. In: Proceedings of the 26th Annual ACM Symposium on Principles of Programming Languages (2009)Google Scholar
  48. 48.
    Ley-Wild, R., Fluet, M., Acar, U.A.: Compiling self-adjusting programs with continuations. In: Proceedings of the International Conference on Functional Programming (2008)Google Scholar
  49. 49.
    Liu, Y.A., Stoller, S., Teitelbaum, T.: Static Caching for Incremental Computation. ACM Transactions on Programming Languages and Systems 20(3), 546–585 (1998)CrossRefGoogle Scholar
  50. 50.
    McCarthy, J.: A Basis for a Mathematical Theory of Computation. In: Braffort, P., Hirschberg, D. (eds.) Computer Programming and Formal Systems, pp. 33–70. North-Holland, Amsterdam (1963)CrossRefGoogle Scholar
  51. 51.
    Michie, D.: ”Memo” Functions and Machine Learning. Nature 218, 19–22 (1968)CrossRefGoogle Scholar
  52. 52.
    Miller, G.L., Reif, J.H.: Parallel tree contraction and its application. In: Proceedings of the 26th Annual IEEE Symposium on Foundations of Computer Science, pp. 487–489 (1985)Google Scholar
  53. 53.
    Overmars, M.H., van Leeuwen, J.: Maintenance of configurations in the plane. Journal of Computer and System Sciences 23, 166–204 (1981)MathSciNetCrossRefzbMATHGoogle Scholar
  54. 54.
    Preparata, F.P.: An optimal real-time algorithm for planar convex hulls. Commun. ACM 22(7), 402–405 (1979)MathSciNetCrossRefzbMATHGoogle Scholar
  55. 55.
    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 (1989)Google Scholar
  56. 56.
    Radzik, T.: Implementation of dynamic trees with in-subtree operations. ACM Journal of Experimental Algorithms 3, Article 9 (1998)MathSciNetCrossRefzbMATHGoogle Scholar
  57. 57.
    Reps, T.: Optimal-time incremental semantic analysis for syntax-directed editors. In: Proceedings of the 9th Annual Symposium on Principles of Programming Languages, pp. 169–176 (1982)Google Scholar
  58. 58.
    Rote, G., Schwarz, C., Snoeyink, J.: Maintaining the approximate width of a set of points in the plane. In: Proceedings of the 5th Canadian Conference on Computational Geometry, pp. 258–263 (1993)Google Scholar
  59. 59.
    Russel, D.: Kinetic Data Structures in Practice. PhD thesis, Department of Computer Science. Stanford University (March 2007)Google Scholar
  60. 60.
    Russel, D., Karavelas, M.I., Guibas, L.J.: A package for exact kinetic data structures and sweepline algorithms. Comput. Geom. Theory Appl. 38(1-2), 111–127 (2007)MathSciNetCrossRefzbMATHGoogle Scholar
  61. 61.
    Saraiva, J., Swierstra, S.D., Kuiper, M.F.: Functional incremental attribute evaluation. In: Watt, D.A. (ed.) CC 2000. LNCS, vol. 1781, pp. 279–294. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  62. 62.
    Shankar, A., Bodik, R.: DITTO: Automatic Incrementalization of Data Structure Invariant Checks (in Java). In: Proceedings of the ACM SIGPLAN 2007 Conference on Programming language Design and Implementation (2007)Google Scholar
  63. 63.
    Sleator, D.D., Tarjan, R.E.: A data structure for dynamic trees. Journal of Computer and System Sciences 26(3), 362–391 (1983)MathSciNetCrossRefzbMATHGoogle Scholar
  64. 64.
    Sleator, D.D., Tarjan, R.E.: Self-adjusting binary search trees. Journal of the ACM 32(3), 652–686 (1985)MathSciNetCrossRefzbMATHGoogle Scholar
  65. 65.
    Sundaresh, R.S., Hudak, P.: Incremental compilation via partial evaluation. In: Conference Record of the 18th Annual ACM Symposium on Principles of Programming Languages, pp. 1–13 (1991)Google Scholar
  66. 66.
    Tarjan, R., Werneck, R.: Dynamic trees in practice. In: Demetrescu, C. (ed.) WEA 2007. LNCS, vol. 4525, pp. 80–93. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  67. 67.
    Tarjan, R., Werneck, R.: Self-adjusting top trees. In: Proceedings of the Sixteenth Annual ACM-SIAM Symposium on Discrete Algorithms (2005)Google Scholar
  68. 68.
    Tarjan, R.E.: Dynamic trees as search trees via euler tours, applied to the network simplex algorithm. Mathematical Programming 78, 167–177 (1997)MathSciNetzbMATHGoogle Scholar
  69. 69.
    Yellin, D.M., Strom, R.E.: INC: A Language for Incremental Computations. ACM Transactions on Programming Languages and Systems 13(2), 211–236 (1991)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2009

Authors and Affiliations

  • Umut A. Acar
    • 1
  • Ruy Ley-Wild
    • 2
  1. 1.Toyota Technological InstituteChicagoUSA
  2. 2.Carnegie Mellon UniversityPittsburghUSA

Personalised recommendations