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 in numerical-analysis problems, commutativity of multiplication is relied on to rearrange an expression of the form “a * X * b + c * X * d” into “(a*b + c*d)*X.” Equations with such expressions 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: “a*X*b + c*X*d” cannot be rearranged into “(a*b + c*d)*X.” Equations with such expressions correspond to path problems described by linear context-free languages (LCFLs).
In this article, 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.
- T. Ball and S. K. Rajamani. 2000. Bebop: A symbolic model checker for Boolean programs. In Spin Workshop. Google ScholarDigital Library
- A. Bouajjani, J. Esparza, and T. Touili. 2003. A generic approach to the static analysis of concurrent programs with procedures. In POPL. Google ScholarDigital Library
- R. E. Bryant. 1986. Graph-based algorithms for Boolean function manipulation. IEEE Trans. Comp. C-35, 6 (Aug. 1986), 677--691. Google ScholarDigital Library
- J. Cocke. 1970. Global common subexpression elimination. Proceedings of the Symposium on Compiler Optimization (1970). Google ScholarDigital Library
- P. Cousot and R. Cousot. 1978. Static determination of dynamic properties of recursive procedures. In Formal Descriptions of Programming Concepts. North-Holland.Google Scholar
- M. Droste, W. Kuich, and H. Vogler (Eds.). 2009. Handbook of Weighted Automata. Springer-Verlag. Google ScholarDigital Library
- M. Elder, J. Lim, T. Sharma, T. Andersen, and T. Reps. 2014. Abstract domains of affine relations. Trans. Prog. Lang. Syst. 36, 4 (Jan. 2014). Google ScholarDigital Library
- J. Esparza, S. Kiefer, and M. Luttenberger. 2008. Newton’s method for omega-continuous semirings. In ICALP. Google ScholarDigital Library
- J. Esparza, S. Kiefer, and M. Luttenberger. 2010. Newtonian program analysis. J. ACM 57, 6 (2010). Google ScholarDigital Library
- A. Farzan and Z. Kincaid. 2015. Compositional recurrence analysis. In FMCAD. Google ScholarDigital Library
- J. P. Gallagher. 2016. Personal communication. (Oct. 2016).Google Scholar
- P. Ganty, R. Iosif, and F. Konečný. 2016. Underapproximation of procedure summaries for integer programs. Softw. Tools for Tech. Transfer (2016). Corrected version available as arXiv:1210.4289v3.Google Scholar
- S. Graf and H. Saïdi. 1997. Construction of abstract state graphs with PVS. In CAV. Google ScholarDigital Library
- S. L. Graham and M. Wegman. 1976. A fast and usually linear algorithm for data flow analysis. J. ACM 23, 1 (1976), 172--202. Google ScholarDigital Library
- N. B. B. Grathwohl, D. Kozen, and K. Mamouras. 2014. KAT + B!. In CSL-LICS. Google ScholarDigital Library
- B. Kafle and J. P. Gallagher. 2015. Horn clause verification with convex polyhedral abstraction and tree automata-based refinement. Computer Languages, Systems 8 Structures (2015).Google Scholar
- B. Kafle, J. P. Gallagher, and P. Ganty. 2016. Solving non-linear Horn clauses using a linear Horn clause solver. In Proceedings of the 3rd Workshop on Horn Clauses for Verification and Synthesis.Google Scholar
- J. B. Kam and J. D. Ullman. 1976. Global data flow analysis and iterative algorithms. J. ACM 23, 1 (1976), 158--171. Google ScholarDigital Library
- J. B. Kam and J. D. Ullman. 1977. Monotone data flow analysis frameworks. Acta Inf. 7, 3 (1977), 305--318. Google ScholarDigital Library
- N. Kidd, A. Lal, and T. Reps. 2007. WALi: The Weighted Automaton Library. Retrieved from www.cs.wisc.edu/wpis/wpds/download.php.Google Scholar
- G. A. Kildall. 1973. A unified approach to global program optimization. In POPL. Google ScholarDigital Library
- Z. Kincaid, J. Breck, A. Forouhi Boroujeni, and T. Reps. 2016. Compositional Recurrence Analysis Revisited. Tech. Rep. TR-1840. Comp. Sci. Dept., Univ. of Wisconsin—Madison.Google Scholar
- J. Knoop and B. Steffen. 1992. The interprocedural coincidence theorem. In CC. Google ScholarDigital Library
- D. E. Knuth. 1977. A generalization of Dijkstra’s algorithm. Inf. Proc. Let. 6, 1 (1977), 1--5.Google ScholarCross Ref
- A. Lal, N. Kidd, T. Reps, and T. Touili. 2007. Abstract error projection. In Static Analysis Symp. Google ScholarDigital Library
- A. Lal and T. Reps. 2006. Improving pushdown system model checking. In CAV. Google ScholarDigital Library
- A. Lal and T. Reps. 2009. Reducing concurrent analysis under a context bound to sequential analysis. Formal Methods Syst. Des. 35, 1 (2009), 73--97. Google ScholarDigital Library
- A. Lal, T. Reps, and G. Balakrishnan. 2005. Extended weighted pushdown systems. In CAV. Google ScholarDigital Library
- A. Lal, T. Touili, N. Kidd, and T. Reps. 2007. Interprocedural Analysis of Concurrent Programs Under a Context Bound. Tech. Rep. TR-1598. Comp. Sci. Dept., University of Wisconsin—Madison.Google Scholar
- A. Lal, T. Touili, N. Kidd, and T. Reps. 2008. Interprocedural analysis of concurrent programs under a context bound. In TACAS. Google ScholarDigital Library
- G. L. Litvinov, A.Ya. Rodionov, S. N. Sergeev, and A. N. Sobolevski. 2013. Universal algorithms for solving the matrix Bellman equations over semirings. Soft Comput. 17, 10 (2013), 1767--1785. Google ScholarDigital Library
- R. McNaughton and H. Yamada. 1960. Regular expressions and state graphs for automata. IRE Trans. Elec. Comput. 9 (1960), 39--47.Google ScholarCross Ref
- U. Möncke and R. Wilhelm. 1991. Grammar flow analysis. In Attribute Grammars, Applications and Systems, (Int. Summer School SAGA). 151--186. Google ScholarDigital Library
- M. Müller-Olm and H. Seidl. 2004. Precise interprocedural analysis through linear algebra. In POPL. Google ScholarDigital Library
- M. Müller-Olm and H. Seidl. 2005. Analysis of modular arithmetic. In ESOP.Google Scholar
- G. Ramalingam. 1996. Bounded Incremental Computation. Springer-Verlag. Google ScholarDigital Library
- T. Reps, S. Horwitz, and M. Sagiv. 1995. Precise interprocedural dataflow analysis via graph reachability. In POPL. 49--61. Google ScholarDigital Library
- T. Reps, A. Lal, and N. Kidd. 2007. Program analysis using weighted pushdown systems. In FSTTCS. Google ScholarDigital Library
- T. Reps, S. Schwoon, S. Jha, and D. Melski. 2005. Weighted pushdown systems and their application to interprocedural dataflow analysis. SCP 58, 1--2 (Oct. 2005), 206--263. Google ScholarDigital Library
- T. Reps, E. Turetsky, and P. Prabhu. 2016. Newtonian program analysis via tensor product. In POPL. Google ScholarDigital Library
- M. Schlund. 2016. Algebraic Systems of Fixpoint Equations over Semirings: Theory and Applications. Ph.D. Dissertation. Lehrstuhl für Informatik VII, Technischen Universität München, Munich, Germany.Google Scholar
- M. Schlund, M. Terepeta, and M. Luttenberger. 2013. Putting Newton into practice: A solver for polynomial equations over semirings. In LPAR.Google Scholar
- M. Sharir and A. Pnueli. 1981. Two approaches to interprocedural data flow analysis. In Program Flow Analysis: Theory and Applications. Prentice-Hall.Google Scholar
- Static Driver Verifier. 2017. Retrieved from msdn.microsoft.com/en-us/library/windows/hardware/ff552808(v=vs.85).aspx.Google Scholar
- R. A. Tapia. 2008. Inverse, Shifted Inverse, and Rayleigh Quotient Iteration as Newton’s Method. Retrieved from www.frequency.com/video/lecture-series-/18347021.Google Scholar
- R. E. Tarjan. 1981a. Fast algorithms for solving path problems. J. ACM 28, 3 (1981), 594--614. Google ScholarDigital Library
- R. E. Tarjan. 1981b. A unified approach to path problems. J. ACM 28, 3 (1981), 577--593. Google ScholarDigital Library
- J. D. Ullman. 1973. Fast algorithms for the elimination of common subexpressions. Acta Inf. 2 (1973), 191--213. Google ScholarDigital Library
- J. D. Ullman and A. Van Gelder. 1986. Parallel complexity of logical query programs. In Foundations of Computer Science. Google ScholarDigital Library
- V. Vyssotsky and P. Wegner. 1963. A graph theoretical Fortran source language analyzer. (1963). Unpublished technical report, Bell Labs, Murray-Hill, NJ (as cited in Aho et al., “Compilers: Principles, Techniques, and Tools,” Addison-Wesley, 1986). Google ScholarDigital Library
- M. Yannakakis. 1990. Graph-theoretic methods in database theory. In PODS. Google ScholarDigital Library
Index Terms
- Newtonian Program Analysis via Tensor Product
Recommendations
Newtonian program analysis via tensor product
POPL '16: Proceedings of the 43rd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming LanguagesRecently, 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 ...
Newtonian program analysis
This article presents a novel generic technique for solving dataflow equations in interprocedural dataflow analysis. The technique is obtained by generalizing Newton's method for computing a zero of a differentiable function to ω-continuous semirings. ...
Newtonian program analysis via tensor product
POPL '16Recently, 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 ...
Comments