skip to main content
article
Public Access

Compositional recurrence analysis revisited

Published:14 June 2017Publication History
Skip Abstract Section

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.

Skip Supplemental Material Section

Supplemental Material

References

  1. APRON. APRON numerical abstract domain library.Google ScholarGoogle Scholar
  2. R. Backhouse and B. Carré. Regular algebra applied to pathfinding problems. J. Inst. Maths. Applics., 15, 1975.Google ScholarGoogle Scholar
  3. D. Beyer and M. Keremoglu. CPAchecker: A tool for configurable software verification. In CAV, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. S. Biallas, J. Brauer, A. King, and S. Kowalewski. Loop leaping with closures. In SAS, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. A. Bouajjani, J. Esparza, and O. Maler. Reachability analysis of pushdown automata: Application to model checking. In CONCUR, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle Scholar
  7. Q. Carbonneaux, J. Hoffmann, and Z. Shao. Compositional certified resource bounds. In PLDI, 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle Scholar
  9. B. Carré. An algebra for network routing problems. J. Inst. Maths. Applics., 7, 1971.Google ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. P. Cousot and N. Halbwachs. Automatic discovery of linear constraints among variables of a program. In POPL, 1978. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. L. de Moura and N. Bjørner. Z3: An efficient SMT solver. In TACAS, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. J. Esparza, S. Kiefer, and M. Luttenberger. Newtonian program analysis. J. ACM, 57(6), 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. A. Farzan and Z. Kincaid. Compositional recurrence analysis. In FMCAD, 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. A. Finkel, B.Willems, and P. Wolper. A direct symbolic approach to model checking pushdown systems. ENTCS, 9, 1997.Google ScholarGoogle Scholar
  16. P. Ganty, R. Iosif, and F. Koneˇ cný. Underapproximation of procedure summaries for integer programs. Softw. Tools for Tech. Transfer, 2016.Google ScholarGoogle Scholar
  17. Corrected version available as arXiv:1210.4289v3 (10.1007/s10009-016-0420-7).Google ScholarGoogle Scholar
  18. M. Gondran and M. Minoux. Graphs, Dioids and Semirings: New Models and Algorithms. Springer-Verlag, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. L. Gonnord and P. Schrammel. Abstract acceleration in linear relation analysis. SCP, 93, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. S. Gulwani and F. Zuleger. The reachability-bound problem. In PLDI, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. S. Gulwani, K. Mehra, and T. Chilimbi. SPEED: Precise and efficient static estimation of program computational complexity. In POPL, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. A. Gurfinkel, T. Kahsai, A. Komuravelli, and J. Navas. The SeaHorn verification framework. In CAV, 2015.Google ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. B. Jeannet, P. Schrammel, and S. Sankaranarayanan. Abstract acceleration of general linear loops. In POPL, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. E. Karpenkov, D. Monniaux, and P. Wendler. Program analysis with local policy iteration. In VMCAI, 2016. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. N. Kidd, A. Lal, and T. Reps. WALi: The Weighted Automaton Library, 2007.Google ScholarGoogle Scholar
  27. G. Kildall. A unified approach to global program optimization. In POPL, 1973. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle Scholar
  29. D. Kroening, N. Sharygina, S. Tonetta, A. Tsitovich, and C. Wintersteiger. Loop summarization using abstract transformers. In ATVA, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. A. Lal and T. Reps. Improving pushdown system model checking. In CAV, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. 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
  33. J. Leroux and G. Sutre. Accelerated data-flow analysis. In SAS, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. T. Reps. Program analysis via graph reachability. IST, 40, 1998.Google ScholarGoogle Scholar
  35. T. Reps, S. Schwoon, S. Jha, and D. Melski. Weighted pushdown systems and their application to interprocedural dataflow analysis. SCP, 58, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. T. Reps, E. Turetsky, and P. Prabhu. Newtonian program analysis via tensor product. In POPL, 2016. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. G. Rote. Path problems in graphs. In Computational Graph Theory (Computing Supplementum 7). Springer-Verlag, 1990.Google ScholarGoogle ScholarCross RefCross Ref
  38. B. Ryder and M. Paul. Elimination algorithms for data flow analysis. ACM Comput. Surv., 18(3):277–316, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. 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
  40. SVCOMP16. 5th Int. competition on software verification (SV-COMP16), 2016.Google ScholarGoogle Scholar
  41. R. Tarjan. Fast algorithms for solving path problems. J. ACM, 28(3):594–614, 1981. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Compositional recurrence analysis revisited

      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

      • Published in

        cover image ACM SIGPLAN Notices
        ACM SIGPLAN Notices  Volume 52, Issue 6
        PLDI '17
        June 2017
        708 pages
        ISSN:0362-1340
        EISSN:1558-1160
        DOI:10.1145/3140587
        Issue’s Table of Contents
        • 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

        Copyright © 2017 ACM

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 14 June 2017

        Check for updates

        Qualifiers

        • article

      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!