skip to main content
10.1145/3062341.3062373acmconferencesArticle/Chapter ViewAbstractPublication PagespldiConference Proceedingsconference-collections
research-article
Public Access

Compositional recurrence analysis revisited

Published: 14 June 2017 Publication History

Abstract

Compositional recurrence analysis (CRA) is a static-analysis method based on a combination of symbolic analysis and abstract interpretation. This paper addresses the problem of creating a context-sensitive interprocedural version of CRA that handles recursive procedures. The problem is non-trivial because there is an "impedance mismatch" between CRA, which relies on analysis techniques based on regular languages (i.e., Tarjan's path-expression method), and the context-free-language underpinnings of context-sensitive analysis.
We show how to address this impedance mismatch by augmenting the CRA abstract domain with additional operations. We call the resulting algorithm Interprocedural CRA (ICRA). Our experiments with ICRA show that it has broad overall strength compared with several state-of-the-art software model checkers.

Supplementary Material

Auxiliary Archive (pldi17-main225-s.zip)
This ZIP archive contains a virtual machine in OVA (Open Virtualization Archive) format. The virtual machine contains an installation of ICRA, which is the program analysis tool that implements the ideas described in the associate publication, "Compositional Recurrence Analysis Revisited." For more information about the virtual machine, see the README.txt file inside the ZIP archive. For detailed information about how to use the virtual machine to run ICRA, see the README.txt file inside the virtual machine at the path "~/Newton/README.txt".

References

[1]
APRON. APRON numerical abstract domain library.
[2]
R. Backhouse and B. Carré. Regular algebra applied to pathfinding problems. J. Inst. Maths. Applics., 15, 1975.
[3]
D. Beyer and M. Keremoglu. CPAchecker: A tool for configurable software verification. In CAV, 2011.
[4]
S. Biallas, J. Brauer, A. King, and S. Kowalewski. Loop leaping with closures. In SAS, 2012.
[5]
A. Bouajjani, J. Esparza, and O. Maler. Reachability analysis of pushdown automata: Application to model checking. In CONCUR, 1997.
[6]
M. Bozga, R. Iosif, F. Koneˇ cný, and T. Vojnar. Tool demonstration of the FLATA counter automata toolset. In Workshop on Invariant Generation, 2012.
[7]
Q. Carbonneaux, J. Hoffmann, and Z. Shao. Compositional certified resource bounds. In PLDI, 2015.
[8]
Q. Carbonneaux, J. Hoffmann, and Z. Shao. Compositional certified resource bounds (extended version). YALEU/DCS/TR-1505, Yale Univ., New Haven, CT, Apr. 2015.
[9]
B. Carré. An algebra for network routing problems. J. Inst. Maths. Applics., 7, 1971.
[10]
P. Cousot and R. Cousot. Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixpoints. In POPL, 1977.
[11]
P. Cousot and N. Halbwachs. Automatic discovery of linear constraints among variables of a program. In POPL, 1978.
[12]
L. de Moura and N. Bjørner. Z3: An efficient SMT solver. In TACAS, 2008.
[13]
J. Esparza, S. Kiefer, and M. Luttenberger. Newtonian program analysis. J. ACM, 57(6), 2010.
[14]
A. Farzan and Z. Kincaid. Compositional recurrence analysis. In FMCAD, 2015.
[15]
A. Finkel, B.Willems, and P. Wolper. A direct symbolic approach to model checking pushdown systems. ENTCS, 9, 1997.
[16]
P. Ganty, R. Iosif, and F. Koneˇ cný. Underapproximation of procedure summaries for integer programs. Softw. Tools for Tech. Transfer, 2016.
[17]
Corrected version available as arXiv:1210.4289v3 (10.1007/s10009-016-0420-7).
[18]
M. Gondran and M. Minoux. Graphs, Dioids and Semirings: New Models and Algorithms. Springer-Verlag, 2010.
[19]
L. Gonnord and P. Schrammel. Abstract acceleration in linear relation analysis. SCP, 93, 2014.
[20]
S. Gulwani and F. Zuleger. The reachability-bound problem. In PLDI, 2010.
[21]
S. Gulwani, K. Mehra, and T. Chilimbi. SPEED: Precise and efficient static estimation of program computational complexity. In POPL, 2009.
[22]
A. Gurfinkel, T. Kahsai, A. Komuravelli, and J. Navas. The SeaHorn verification framework. In CAV, 2015.
[23]
M. Heizmann, J. Christ, D. Dietsch, E. Ermis, J. Hoenicke, M. Lindenmann, A. Nutz, C. Schilling, and A. Podelski. Ultimate Automizer with SMTInterpol (competition contribution). In TACAS, 2013.
[24]
B. Jeannet, P. Schrammel, and S. Sankaranarayanan. Abstract acceleration of general linear loops. In POPL, 2014.
[25]
E. Karpenkov, D. Monniaux, and P. Wendler. Program analysis with local policy iteration. In VMCAI, 2016.
[26]
N. Kidd, A. Lal, and T. Reps. WALi: The Weighted Automaton Library, 2007.
[27]
G. Kildall. A unified approach to global program optimization. In POPL, 1973.
[28]
Z. Kincaid, J. Breck, A. Forouhi Boroujeni, and T. Reps. Compositional recurrence analysis revisited. TR-1840, Comp. Sci. Dept., Univ. of Wisconsin, Madison, WI, Oct. 2016. Revised, Apr. 2017.
[29]
D. Kroening, N. Sharygina, S. Tonetta, A. Tsitovich, and C. Wintersteiger. Loop summarization using abstract transformers. In ATVA, 2008.
[30]
A. Lal and T. Reps. Improving pushdown system model checking. In CAV, 2006.
[31]
A. Lal and T. Reps. Reducing concurrent analysis under a context bound to sequential analysis. Formal Methods in System Design, 35(1):73–97, 2009.
[32]
A. Lal, T. Touili, N. Kidd, and T. Reps. Interprocedural analysis of concurrent programs under a context bound. In TACAS, 2008.
[33]
J. Leroux and G. Sutre. Accelerated data-flow analysis. In SAS, 2007.
[34]
T. Reps. Program analysis via graph reachability. IST, 40, 1998.
[35]
T. Reps, S. Schwoon, S. Jha, and D. Melski. Weighted pushdown systems and their application to interprocedural dataflow analysis. SCP, 58, 2005.
[36]
T. Reps, E. Turetsky, and P. Prabhu. Newtonian program analysis via tensor product. In POPL, 2016.
[37]
G. Rote. Path problems in graphs. In Computational Graph Theory (Computing Supplementum 7). Springer-Verlag, 1990.
[38]
B. Ryder and M. Paul. Elimination algorithms for data flow analysis. ACM Comput. Surv., 18(3):277–316, 1986.
[39]
M. Sharir and A. Pnueli. Two approaches to interprocedural data flow analysis. In Program Flow Analysis: Theory and Applications. Prentice-Hall, 1981.
[40]
SVCOMP16. 5th Int. competition on software verification (SV-COMP16), 2016.
[41]
R. Tarjan. Fast algorithms for solving path problems. J. ACM, 28(3):594–614, 1981.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
PLDI 2017: Proceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation
June 2017
708 pages
ISBN:9781450349888
DOI:10.1145/3062341
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

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 14 June 2017

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Invariant generation
  2. Resource bounds

Qualifiers

  • Research-article

Funding Sources

Conference

PLDI '17
Sponsor:

Acceptance Rates

Overall Acceptance Rate 406 of 2,067 submissions, 20%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)133
  • Downloads (Last 6 weeks)20
Reflects downloads up to 03 Jan 2025

Other Metrics

Citations

Cited By

View all

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