[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/2837614.2837659acmconferencesArticle/Chapter ViewAbstractPublication PagespoplConference Proceedingsconference-collections
research-article
Public Access

Newtonian program analysis via tensor product

Published: 11 January 2016 Publication History

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.
[2]
A. Bouajjani, J. Esparza, and T. Touili. A generic approach to the static analysis of concurrent programs with procedures. In POPL, 2003.
[3]
R. Bryant. Graph-based algorithms for Boolean function manipulation. IEEE Trans. on Comp., C-35(6):677–691, Aug. 1986.
[4]
J. Cocke. Global common subexpression elimination. Proc. Symp. on Compiler Optimization, 1970.
[5]
P. Cousot and R. Cousot. Static determination of dynamic properties of recursive procedures. In Formal Descriptions of Programming Concepts. North-Holland, 1978.
[6]
J. Esparza, S. Kiefer, and M. Luttenberger. Newton’s method for omega-continuous semirings. In ICALP, 2008.
[7]
J. Esparza, S. Kiefer, and M. Luttenberger. Newtonian program analysis. J. ACM, 57(6), 2010.
[8]
S. Graf and H. Saïdi. Construction of abstract state graphs with PVS. In CAV, 1997.
[9]
S. Graham and M. Wegman. A fast and usually linear algorithm for data flow analysis. J. ACM, 23(1):172–202, 1976.
[10]
N. Grathwohl, D. Kozen, and K. Mamouras. KAT + B! In CSL-LICS, 2014.
[11]
J. Kam and J. Ullman. Global data flow analysis and iterative algorithms. J. ACM, 23(1):158–171, 1976.
[12]
N. Kidd, A. Lal, and T. Reps. WALi: The Weighted Automaton Library, 2007. www.cs.wisc.edu/wpis/wpds/download.php.
[13]
G. Kildall. A unified approach to global program optimization. In POPL, 1973.
[14]
J. Knoop and B. Steffen. The interprocedural coincidence theorem. In CC, 1992.
[15]
A. Lal and T. Reps. Improving pushdown system model checking. In CAV, 2006.
[16]
A. Lal, T. Reps, and G. Balakrishnan. Extended weighted pushdown systems. In CAV, 2005.
[17]
A. Lal, N. Kidd, T. Reps, and T. Touili. Abstract error projection. In Static Analysis Symp., 2007.
[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.
[19]
A. Lal, T. Touili, N. Kidd, and T. Reps. Interprocedural analysis of concurrent programs under a context bound. In TACAS, 2008.
[20]
R. McNaughton and H. Yamada. Regular expressions and state graphs for automata. IRE Trans. on Elec. Computers, 9:39–47, 1960.
[21]
M. Müller-Olm and H. Seidl. Precise interprocedural analysis through linear algebra. In POPL, 2004.
[22]
M. Müller-Olm and H. Seidl. Analysis of modular arithmetic. In ESOP, 2005.
[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.
[24]
T. Reps, A. Lal, and N. Kidd. Program analysis using weighted pushdown systems. In FSTTCS, 2007.
[25]
M. Schlund, M. Terepeta, and M. Luttenberger. Putting Newton into practice: A solver for polynomial equations over semirings. In LPAR, 2013.
[26]
M. Sharir and A. Pnueli. Two approaches to interprocedural data flow analysis. In Program Flow Analysis: Theory and Applications. Prentice-Hall, 1981.
[27]
Static Driver Verifier. Static driver verifier. msdn.microsoft.com/enus/library/windows/hardware/ff552808(v=vs.85).aspx.
[28]
R. Tapia. Inverse, shifted inverse, and Rayleigh quotient iteration as Newton’s method, 2008. www.frequency.com/video/lecture-series- /18347021.
[29]
R. Tarjan. A unified approach to path problems. J. ACM, 28(3):577– 593, 1981.
[30]
R. Tarjan. Fast algorithms for solving path problems. J. ACM, 28(3): 594–614, 1981.
[31]
J. Ullman. Fast algorithms for the elimination of common subexpressions. Acta Inf., 2:191–213, 1973.
[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.
[33]
M. Yannakakis. Graph-theoretic methods in database theory. In PODS, 1990.

Cited By

View all
  • (2024)Newtonian Program Analysis of Probabilistic ProgramsProceedings of the ACM on Programming Languages10.1145/36498228:OOPSLA1(305-333)Online publication date: 29-Apr-2024
  • (2024)Convergence of datalog over (Pre-) SemiringsJournal of the ACM10.1145/364302771:2(1-55)Online publication date: 10-Apr-2024
  • (2024)Reachability in Continuous Pushdown VASSProceedings of the ACM on Programming Languages10.1145/36332798:POPL(90-114)Online publication date: 5-Jan-2024
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
POPL '16: Proceedings of the 43rd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
January 2016
815 pages
ISBN:9781450335492
DOI:10.1145/2837614
  • cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 51, Issue 1
    POPL '16
    January 2016
    815 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/2914770
    • Editor:
    • Andy Gill
    Issue’s Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 11 January 2016

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Newton's method
  2. interprocedural program analysis
  3. polynomial fixed-point equation
  4. regular expression
  5. semiring
  6. tensor product

Qualifiers

  • Research-article

Funding Sources

Conference

POPL '16
Sponsor:

Acceptance Rates

Overall Acceptance Rate 824 of 4,130 submissions, 20%

Upcoming Conference

POPL '25

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)124
  • Downloads (Last 6 weeks)11
Reflects downloads up to 13 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Newtonian Program Analysis of Probabilistic ProgramsProceedings of the ACM on Programming Languages10.1145/36498228:OOPSLA1(305-333)Online publication date: 29-Apr-2024
  • (2024)Convergence of datalog over (Pre-) SemiringsJournal of the ACM10.1145/364302771:2(1-55)Online publication date: 10-Apr-2024
  • (2024)Reachability in Continuous Pushdown VASSProceedings of the ACM on Programming Languages10.1145/36332798:POPL(90-114)Online publication date: 5-Jan-2024
  • (2024)Newton’s Method – There and Back AgainTaming the Infinities of Concurrency10.1007/978-3-031-56222-8_11(181-205)Online publication date: 20-Mar-2024
  • (2022)Tensor Wiener FilterIEEE Transactions on Signal Processing10.1109/TSP.2022.314072270(410-422)Online publication date: 2022
  • (2019)Relative error tensor low rank approximationProceedings of the Thirtieth Annual ACM-SIAM Symposium on Discrete Algorithms10.5555/3310435.3310607(2772-2789)Online publication date: 6-Jan-2019
  • (2019)Closed forms for numerical loopsProceedings of the ACM on Programming Languages10.1145/32903683:POPL(1-29)Online publication date: 2-Jan-2019
  • (2019)Context-, flow-, and field-sensitive data-flow analysis using synchronized Pushdown systemsProceedings of the ACM on Programming Languages10.1145/32903613:POPL(1-29)Online publication date: 2-Jan-2019
  • (2018)Responsible research with crowdsCommunications of the ACM10.1145/318049261:3(39-41)Online publication date: 21-Feb-2018
  • (2018)Time-inconsistent planningCommunications of the ACM10.1145/317618961:3(99-107)Online publication date: 21-Feb-2018
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media