Skip to main content

Symbolic Support Graph: A Space Efficient Data Structure for Incremental Tabled Evaluation

  • Conference paper

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 3668))

Abstract

In an earlier paper, we described a data structure, called support graph, for efficient incremental evaluation of tabled logic programs. The support graph records the dependencies between answers in the tables, and is crucial for efficiently propagating the changes to the tables when facts are deleted. Incremental computation with support graphs are hundreds of times faster than from-scratch evaluation for small changes in the program. However, the graph typically grows faster than the tables themselves, making it impractical to maintain the full support graph for large applications.

In this paper we present a data structure, called symbolic support graph, which represents support information compactly. For a variety of useful tabled logic programs, the size of the symbolic support graph grows no faster than the table size. We demonstrate its effectiveness using a large application: a logic-programming-based points-to analyzer for C programs. The incremental analyzer shows very good scalability in terms of space usage, and is hundreds of times faster than from-scratch analysis for small changes to the program.

This research was supported in part by NSF grants CCR-020537 and CCR-0311512.

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. Acar, U.A., Blelloch, G.E., Harper, R.: Adaptive functional programming. In: POPL, pp. 247–259. ACM Press, New York (2002)

    Google Scholar 

  2. Anderson, L.O.: Program Analysis and Specialization for the C Programming Language. PhD thesis, DIKU, Unversity of Copenhagen (1994)

    Google Scholar 

  3. Apt, K., Pugin, J.M.: Maintenance of stratified databases viewed as a belief revision system. In: Principles of Database Systems, San Diego, California, United States, pp. 136–145. ACM Press, New York (1987)

    Google Scholar 

  4. Basu, S., Kumar, K.N., Pokorny, L.R., Ramakrishnan, C.R.: Resource-constrained model checking of recursive programs. In: Katoen, J.-P., Stevens, P. (eds.) TACAS 2002. LNCS, vol. 2280, pp. 236–250. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  5. Bol, R., Degerstadt, L.: Tabulated resolution for well-founded semantics. In: ILPS (1993)

    Google Scholar 

  6. Bryant, R.E.: Graph-based algorithms for Boolean function manipulation. IEEE Transactions on Computers C-35(8), 677–691 (1986)

    Article  Google Scholar 

  7. Chen, W., Warren, D.S.: Tabled evaluation with delaying for general logic programs. JACM 43(1), 20–74 (1996)

    Article  MATH  MathSciNet  Google Scholar 

  8. Dawson, S., Ramakrishnan, C.R., Warren, D.S.: Practical program analysis using general purpose logic programming systems — a case study. In: ACM PLDI, pp. 117–126 (1996)

    Google Scholar 

  9. Doyle, J.: A truth maintenance system. Artificial Intelligence 12, 231–272 (1979)

    Article  MathSciNet  Google Scholar 

  10. Guo, H., Gupta, G.: A simple scheme for implementing tabled logic programming systems based on dynamic reordering of alternatives. In: ICLP, pp. 181–196. Springer, Heidelberg (2001)

    Google Scholar 

  11. Gupta, A., Mumick, I.S., Subrahmanian, V.S.: Maintaining views incrementally. In: SIGMOD, pp. 157–166 (1993)

    Google Scholar 

  12. Gupta, A., Mumick, I.S.: Maintenance of materialized views: Problems, techniques, and appfications. IEEE Data Engineering Bulletin 18(2), 3–18 (1995)

    Google Scholar 

  13. Lu, J., Moerkotte, G., Schue, J., Subrahmanian, V.S.: Efficient maintenance of materialized mediated views. In: ACM SIGMOD, pp. 340–351 (1995)

    Google Scholar 

  14. Necula, G.C., McPeak, S., Rahul, S.P., Weime, W.: CIL: Intermediate language and tools for analysis and transformation of C programs. In: Compiler Construction, pp. 213–228. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  15. PAF. Prolangs analysis framework, Available at http://www.prolangs.rutgers.edu/public.html

  16. Pollock, L.L., Soffa, M.L.: An incremental version of iterative data flow analysis. IEEE Trans. Softw. Eng. 15(12), 1537–1549 (1989)

    Article  Google Scholar 

  17. Ramakrishnan, C.R., et al.: XMC: A logic-programming-based verification toolset. In: Emerson, E.A., Sistla, A.P. (eds.) CAV 2000. LNCS, vol. 1855, pp. 576–580. Springer, Heidelberg (2000)

    Chapter  Google Scholar 

  18. Reps, T., Teitelbaum, T., Demers, A.: Incremental context-dependent analysis for language-based editors. TOPLAS 5(3), 449–477 (1983)

    Article  Google Scholar 

  19. Reps, T.W.: Generating language-based environments. MIT Press, Cambridge (1984)

    MATH  Google Scholar 

  20. Rocha, R., Silva, F., Costa, V.S.: YapTab: A Tabling Engine Designed to Support Parallelism. In: Workshop on Tabling in Parsing and Deduction (2000)

    Google Scholar 

  21. Saha, D., Ramakrishnan, C.R.: Incremental evaluation of tabled logic programs. In: Palamidessi, C. (ed.) ICLP 2003. LNCS, vol. 2916, pp. 389–406. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  22. Saha, D., Ramakrishnan, C.R.: Incremental and demand-driven points-to analysis using logic programming. In: PPDP, pp. 117–128. ACM Press, New York (2005)

    Google Scholar 

  23. Saha, D., Ramakrishnan, C.R.: A local algorithm for efficient incremental evaluation of tabled logic programs (2005), Available at http://www.lmc.cs.sunysb.edu/~dsaha/local

  24. Saha, D., Ramakrishnan, C.R.: Symbolic support graph: A space efficient data structure for incremental tabled evaluation (2005), Available at http://www.lmc.cs.sunysb.edu/~dsaha/symspt

  25. Sokolsky, O.V., Smolka, S.A.: Incremental model checking in the modal mu-calculus. In: Dill, D.L. (ed.) CAV 1994. LNCS, vol. 818, pp. 351–363. Springer, Heidelberg (1994)

    Google Scholar 

  26. Swamy, G.: Incremental Methods for Formal Verification and Logic Synthesis. PhD thesis, University of California at Berkeley (1996)

    Google Scholar 

  27. Swamy, G., Brayton, R.K., Singhal, V.: Incremental methods for FSM traversal. In: Intl. Conference on Computer Design (ICCD). IEEE Computer Society, Los Alamitos (1995)

    Google Scholar 

  28. Tamaki, H., Sato, T.: OLDT resolution with tabulation. In: ICLP, pp. 84–98 (1986)

    Google Scholar 

  29. XSB. The XSB logic programming system, Available at http://xsb.sourceforge.net

  30. Yur, J., Ryder, B.G., Landi, W.: An incremental flow- and context-sensitive pointer aliasing analysis. In: ICSE, pp. 442–451 (1999)

    Google Scholar 

  31. Zhou, N., Shen, Y., Yuan, L., You, J.: Implementation of a linear tabling mechanism. Journal of Functional and Logic Programming 2001(10) (October 2001)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2005 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Saha, D., Ramakrishnan, C.R. (2005). Symbolic Support Graph: A Space Efficient Data Structure for Incremental Tabled Evaluation. In: Gabbrielli, M., Gupta, G. (eds) Logic Programming. ICLP 2005. Lecture Notes in Computer Science, vol 3668. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11562931_19

Download citation

  • DOI: https://doi.org/10.1007/11562931_19

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-29208-1

  • Online ISBN: 978-3-540-31947-4

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics