skip to main content
article
Public Access

Newtonian program analysis via tensor product

Published:11 January 2016Publication History
Skip Abstract Section

Abstract

Recently, Esparza et al. generalized Newton's method -- a numerical-analysis algorithm for finding roots of real-valued functions---to a method for finding fixed-points of systems of equations over semirings. Their method provides a new way to solve interprocedural dataflow-analysis problems. As in its real-valued counterpart, each iteration of their method solves a simpler ``linearized'' problem. One of the reasons this advance is exciting is that some numerical analysts have claimed that ```all' effective and fast iterative [numerical] methods are forms (perhaps very disguised) of Newton's method.'' However, there is an important difference between the dataflow-analysis and numerical-analysis contexts: when Newton's method is used on numerical-analysis problems, multiplicative commutativity is relied on to rearrange expressions of the form ``c*X + X*d'' into ``(c+d) * X.'' Such equations correspond to path problems described by regular languages. In contrast, when Newton's method is used for interprocedural dataflow analysis, the ``multiplication'' operation involves function composition, and hence is non-commutative: ``c*X + X*d'' cannot be rearranged into ``(c+d) * X.'' Such equations correspond to path problems described by linear context-free languages (LCFLs). In this paper, we present an improved technique for solving the LCFL sub-problems produced during successive rounds of Newton's method. Our method applies to predicate abstraction, on which most of today's software model checkers rely.

References

  1. T. Ball and S. Rajamani. Bebop: A symbolic model checker for Boolean programs. In Spin Workshop, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. A. Bouajjani, J. Esparza, and T. Touili. A generic approach to the static analysis of concurrent programs with procedures. In POPL, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. R. Bryant. Graph-based algorithms for Boolean function manipulation. IEEE Trans. on Comp., C-35(6):677–691, Aug. 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. J. Cocke. Global common subexpression elimination. Proc. Symp. on Compiler Optimization, 1970. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. P. Cousot and R. Cousot. Static determination of dynamic properties of recursive procedures. In Formal Descriptions of Programming Concepts. North-Holland, 1978.Google ScholarGoogle Scholar
  6. J. Esparza, S. Kiefer, and M. Luttenberger. Newton’s method for omega-continuous semirings. In ICALP, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. J. Esparza, S. Kiefer, and M. Luttenberger. Newtonian program analysis. J. ACM, 57(6), 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. S. Graf and H. Saïdi. Construction of abstract state graphs with PVS. In CAV, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. S. Graham and M. Wegman. A fast and usually linear algorithm for data flow analysis. J. ACM, 23(1):172–202, 1976. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. N. Grathwohl, D. Kozen, and K. Mamouras. KAT + B! In CSL-LICS, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. J. Kam and J. Ullman. Global data flow analysis and iterative algorithms. J. ACM, 23(1):158–171, 1976. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. N. Kidd, A. Lal, and T. Reps. WALi: The Weighted Automaton Library, 2007. www.cs.wisc.edu/wpis/wpds/download.php.Google ScholarGoogle Scholar
  13. G. Kildall. A unified approach to global program optimization. In POPL, 1973. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. J. Knoop and B. Steffen. The interprocedural coincidence theorem. In CC, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. A. Lal and T. Reps. Improving pushdown system model checking. In CAV, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. A. Lal, T. Reps, and G. Balakrishnan. Extended weighted pushdown systems. In CAV, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. A. Lal, N. Kidd, T. Reps, and T. Touili. Abstract error projection. In Static Analysis Symp., 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. A. Lal, T. Touili, N. Kidd, and T. Reps. Interprocedural analysis of concurrent programs under a context bound. Tech. Rep. TR-1598, Comp. Sci. Dept., Univ. of Wisconsin, Madison, WI, July 2007.Google ScholarGoogle Scholar
  19. A. Lal, T. Touili, N. Kidd, and T. Reps. Interprocedural analysis of concurrent programs under a context bound. In TACAS, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. R. McNaughton and H. Yamada. Regular expressions and state graphs for automata. IRE Trans. on Elec. Computers, 9:39–47, 1960.Google ScholarGoogle ScholarCross RefCross Ref
  21. M. Müller-Olm and H. Seidl. Precise interprocedural analysis through linear algebra. In POPL, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. M. Müller-Olm and H. Seidl. Analysis of modular arithmetic. In ESOP, 2005.Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. T. Reps, S. Schwoon, S. Jha, and D. Melski. Weighted pushdown systems and their application to interprocedural dataflow analysis. SCP, 58(1–2):206–263, Oct. 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. T. Reps, A. Lal, and N. Kidd. Program analysis using weighted pushdown systems. In FSTTCS, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. M. Schlund, M. Terepeta, and M. Luttenberger. Putting Newton into practice: A solver for polynomial equations over semirings. In LPAR, 2013.Google ScholarGoogle ScholarCross RefCross Ref
  26. M. Sharir and A. Pnueli. Two approaches to interprocedural data flow analysis. In Program Flow Analysis: Theory and Applications. Prentice-Hall, 1981.Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Static Driver Verifier. Static driver verifier. msdn.microsoft.com/enus/library/windows/hardware/ff552808(v=vs.85).aspx.Google ScholarGoogle Scholar
  28. R. Tapia. Inverse, shifted inverse, and Rayleigh quotient iteration as Newton’s method, 2008. www.frequency.com/video/lecture-series- /18347021.Google ScholarGoogle Scholar
  29. R. Tarjan. A unified approach to path problems. J. ACM, 28(3):577– 593, 1981. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. R. Tarjan. Fast algorithms for solving path problems. J. ACM, 28(3): 594–614, 1981. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. J. Ullman. Fast algorithms for the elimination of common subexpressions. Acta Inf., 2:191–213, 1973. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. V. Vyssotsky and P. Wegner. A graph theoretical Fortran source language analyzer. Unpublished technical report, Bell Labs, Murray-Hill NJ (as cited in Aho et al., “Compilers: Principles, Techniques, and Tools”, Addison-Wesley, 1986), 1963.Google ScholarGoogle Scholar
  33. M. Yannakakis. Graph-theoretic methods in database theory. In PODS, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Newtonian program analysis via tensor product

                      Recommendations

                      Comments

                      Login options

                      Check if you have access through your login credentials or your institution to get full access on this article.

                      Sign in

                      Full Access

                      PDF Format

                      View or Download as a PDF file.

                      PDF

                      eReader

                      View online with eReader.

                      eReader
                      About Cookies On This Site

                      We use cookies to ensure that we give you the best experience on our website.

                      Learn more

                      Got it!