Proceedings

Call-Graph Caching: Transforming Programs into Networks

Download BibTeX Cite

Proceedings of the Eleventh International Joint Conference on Artificial Intelligence. Tools. Pages 122-127.

© 1989 International Joint Conferences on Artificial Intelligence

Abstract

There are computer programs that use the same flow of control when run on different inputs. This redundancy in their program execution traces can be exploited by preserving suitably abstracted call-graphs! for subsequent reuse. We introduce a new programming transformation Call-Graph Caching (CGC) which partially evaluates the control flow of sets of such programs into a network formed from their call-graphs. CGC can automatically generate efficient state-saving structure-sharing incremental algorithms from simple program specifications. As an example, we show bow a straightforward, inefficient LISP program for conjunctive match is automatically transformed into the RETE network algorithm. Simple and understandable changes to elegant functional (and other) programs are automatically translated by CGC into new efficient incremental network algorithms; this abstraction mechanism is shown for a class of conjunctive matching algorithms. We establish criteria for the appropriate application of CGC to other AI methods, such as planning, chart parsing, consistency maintenance, and analogical reasoning.

  1. [Abo, 1983] Abo, A.V., Hopcroft, J.E., and llliman, J.D. Data Structures and Algorithms. Addison-Wesley, Read- ing, Massachusetts, 1983.
  2. [Abo, 1986] Abo, A.V., Sethi, R., and llliman, J.D. Compilers: Principles, Techniques and Tools. Addison- Wesley, Reading, Massachusetts, 1986.
  3. [Baer, 1980] Baer, J. Computer Systems Architecture. Com- puter Science Press, Rockville, Maryland, 1980.
  4. [Carbonell, 1983] Carbonell, J. G. Learning by Analogy: Formulating and Generalizing Plans from Past Ex- perience. In R. S. Michalski, J. G. Carbonell and T. M. Mitchell (editors), Machine Learning, An Artificial Intelligence Approach. Tioga Press, Palo Alto, CA, 1983.
  5. [Doyle, 1979] Doyle, J. A Truth Maintenance System. Artificial Intelligence, 12:231-272, 1979. 128 Tools
  6. [Ferrante, 1987] Ferrante, J., Ottenstein, KJ., and Warren, J.D. The Program Dependence Graph and Its Use in Optimization. ACM Transactions on Programming Lan- guages and Systems, 9(3):319-349, July 1987.
  7. [Forgy, 1979] Forgy, C.L. On the Efficient Implementation of Production Systems. PhD thesis, Department of Com- puter Science, Carnegie Mellon University, February, 1979.
  8. [Futamura, 1971] Futamura, Y. Partial evaluation of com- putation process --an approach to a compiler-compiler. Computer Systems Controls, 2(5):45-50, 1971.
  9. [Hoover, 1987] Hoover, R.Incremental Graph Evaluation. PhD thesis, Cornell University, May, 1987.
  10. [Knuth, 1973] Knuth, D.E. Fundamental Algorithms. Addison-Wesley, Reading, Massachusetts, 1973.
  11. [Laird, 1986] Laird, J. E., Rosenbloom, P. S. and Newell, A. Chunking in SOAR: The Anatomy of a General Learn- ing Mechanism. Machine Learning, 1, 1986.
  12. [Minton, 1988] Minton, Steven M. Learning effective search control knowledge: An explanation-based approach. PhD thesis, Carnegie Mellon University, February, 1988.
  13. [Miranker, 1987] Miranker, D.P. TREAT: A New and Ef- ficient Match Algorithm. PhD thesis, Columbia Univer- sity, January, 1987.
  14. [Mitchell, 1986] Mitchell, T. M., Keller, R. M. and Kedar- Cabelli, S. T. Explanation-Based Generalization: A Unifying View. Machine Learning , 1:47-80, 1986.
  15. [Paige, 1982] Paige, R., and Koenig, S. Finite Differencing of Computable Expressions. ACM Transactions on Pro- gramming Languages and Systems, 4(3):402-454, 1982.
  16. [Perlin, 1988a] Perlin, M.W. Reducing Computation by In- tegrating Inference and User Interface. Technical Report CMU-CS-88-150, Carnegie Mellon University;
  17. Pitts- burgh, PA, June, 1988.
  18. [Perlin, 1988b] Perlin, M .W. Transforming Programs into Networks: Call-Graph Caching, Applications and Ex- amples. Technical Report CMU-CS-88-202, Carnegie Mellon University, Pittsburgh, PA, December, 1988.
  19. [Pugh, 1988] Pugh, W.W. Incremental Computation and the Incremental Evaluation of Function Programs. PhD thesis, Cornell University, August, 1988.
  20. [Reps, 1983] Reps, T., Teitelbaum, T., and Demers, A. Incremental context-dependent analysis for language- based editors. ACM Trans. Prog. Lang. Sys. , 5(3):449-477, July 1983.
  21. [Schank, 1977] Schank, R. C. and Abelson, R. P. Scripts, Goals, Plans and Understanding. Hillside, NJ: Lawrence Erlbaum, 1977.
  22. [Stolfo, 1982] Stolfo, S.J., and Shaw, D.E. DADO: A Tree- structured Machine Architecture for Production Systems. In Proceedings of National Conference on Artificial Intelligence, pages 369-388, August, 1982. AAAI.
  23. [Winograd, 1983] Winograd, T. Language as a Cognitive Process, Volume I: Syntax. Addison-Wesley, 1983.

References were extracted automatically from the PDF and may contain errors.

Welcome Future Conferences AI Journal Division IJCAI Proceedings About IJCAI IJCAI Awards