Newtonian program analysis via tensor product
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.
Document Details
- Document Type
- Pub Defense Publication
- Publication Date
- Jan 11, 2016
- Source ID
- 10.1145/2914770.2837659
Entities
People
- Emma Turetsky
- Prathmesh Prabhu
- Thomas Reps
Organizations
- Air Force Research Laboratory
- Defense Advanced Research Projects Agency
- GrammaTech
- National Science Foundation
- Office of Naval Research
- United States Army Research Laboratory
- University of Wisconsin–Madison
- Wisconsin Alumni Research Foundation