Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1007/978-3-540-88387-6_10guideproceedingsArticle/Chapter ViewAbstractPublication PagesConference Proceedingsacm-pubtype
Article

Loop Summarization Using Abstract Transformers

Published: 20 October 2008 Publication History
  • Get Citation Alerts
  • Abstract

    Existing program analysis tools that implement abstraction rely on saturating procedures to compute over-approximations of fixpoints. As an alternative, we propose a new algorithm to compute an over-approximation of the set of reachable states of a program by replacing loops in the control flow graph by their abstract transformer. Our technique is able to generate diagnostic information in case of property violations, which we call leaping counterexamples . We have implemented this technique and report experimental results on a set of large ANSI-C programs using abstract domains that focus on properties related to string-buffers.

    References

    [1]
    Cousot, P., Cousot, R.: Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixpoints. In: POPL, pp. 238-252 (1977).
    [2]
    Cousot, P., Halbwachs, N.: Automatic Discovery of Linear Restraints Among Variables of a Program. In: POPL, pp. 84-96 (1978).
    [3]
    Cousot, P., Cousot, R.: Comparing the Galois connection and widening/narrowing approaches to abstract interpretation. In: Bruynooghe, M., Wirsing, M. (eds.) PLILP 1992. LNCS, vol. 631, pp. 269-295. Springer, Heidelberg (1992).
    [4]
    Reps, T.W., Sagiv, S., Yorsh, G.: Symbolic Implementation of the Best Transformer. In: Steffen, B., Levi, G. (eds.) VMCAI 2004. LNCS, vol. 2937, pp. 252-266. Springer, Heidelberg (2004).
    [5]
    Clarke, E.M., Kroening, D., Sharygina, N., Yorav, K.: Predicate abstraction of ANSI-C programs using SAT. FMSD 25, 105-127 (2004).
    [6]
    Gopan, D., Reps, T.W.: Low-level library analysis and summarization. In: Damm, W., Hermanns, H. (eds.) CAV 2007. LNCS, vol. 4590, pp. 68-81. Springer, Heidelberg (2007).
    [7]
    Sharir, M., Pnueli, A.: Two approaches to interprocedural data flow analysis. In: Program Flow Analysis: theory and applications. Prentice-Hall, Englewood Cliffs (1981).
    [8]
    Aiken, A., Bugrara, S., Dillig, I., Dillig, T., Hackett, B., Hawkins, P.: An overview of the Saturn project. In: PASTE, pp. 43-48. ACM, New York (2007).
    [9]
    Babic, D., Hu, A.J.: Calysto: scalable and precise extended static checking. In: ICSE, pp. 211-220. ACM, New York (2008).
    [10]
    Jackson, D., Vaziri, M.: Finding bugs with a constraint solver. In: ISSTA, pp. 14-25 (2000).
    [11]
    Clarke, E., Kroening, D., Lerda, F.: A tool for checking ANSI-C programs. In: Jensen, K., Podelski, A. (eds.) TACAS 2004. LNCS, vol. 2988, pp. 168-176. Springer, Heidelberg (2004).
    [12]
    Clarke, E., Grumberg, O., Peled, D.A.: Model checking. MIT Press, Cambridge (1999).
    [13]
    Cousot, P., Cousot, R.: Systematic design of program analysis frameworks. In: POPL, pp. 269-282 (1979).
    [14]
    Graf, S., Saïdi, H.: Construction of abstract state graphs with PVS. In: Grumberg, O. (ed.) CAV 1997. LNCS, vol. 1254, pp. 72-83. Springer, Heidelberg (1997).
    [15]
    Lahiri, S.K., Ball, T., Cook, B.: Predicate abstraction via symbolic decision procedures. In: Etessami, K., Rajamani, S.K. (eds.) CAV 2005. LNCS, vol. 3576, pp. 24-38. Springer, Heidelberg (2005).
    [16]
    Kroening, D., Sharygina, N.: Approximating predicate images for bit-vector logic. In: Hermanns, H., Palsberg, J. (eds.) TACAS 2006. LNCS, vol. 3920, pp. 242-256. Springer, Heidelberg (2006).
    [17]
    Lahiri, S.K., Nieuwenhuis, R., Oliveras, A.: SMT techniques for fast predicate abstraction. In: Ball, T., Jones, R.B. (eds.) CAV 2006. LNCS, vol. 4144, pp. 424- 437. Springer, Heidelberg (2006).
    [18]
    Cavada, R., Cimatti, A., Franzén, A., Kalyanasundaram, K., Roveri, M., Shyamasundar, R.K.: Computing predicate abstractions by integrating BDDs and SMT solvers. In: FMCAD, pp. 69-76. IEEE, Los Alamitos (2007).
    [19]
    Tarjan, R.E.: Fast algorithms for solving path problems. J. ACM28, 594-614 (1981).
    [20]
    Ashcroft, E., Manna, Z.: The translation of 'go to' programs to 'while' programs, pp. 49-61 (1979).
    [21]
    Dor, N., Rodeh, M., Sagiv, S.: CSSV: towards a realistic tool for statically detecting all buffer overflows in C. In: PLDI, pp. 155-167 (2003).
    [22]
    Zitser, M., Lippmann, R., Leek, T.: Testing static analysis tools using exploitable buffer overflows from open source code. In: SIGSOFT FSE, pp. 97-106 (2004).
    [23]
    Ku, K., Hart, T.E., Chechik, M., Lie, D.: A buffer overflow benchmark for software model checkers. In: ASE 2007, pp. 389-392. ACM Press, New York (2007).

    Cited By

    View all
    • (2022)Veracity: declarative multicore programming with commutativityProceedings of the ACM on Programming Languages10.1145/35633496:OOPSLA2(1726-1756)Online publication date: 31-Oct-2022
    • (2021)Algebraic Program AnalysisComputer Aided Verification10.1007/978-3-030-81685-8_3(46-83)Online publication date: 20-Jul-2021
    • (2020)Termination analysis for evolving programs: an incremental approach by reusing certified modulesProceedings of the ACM on Programming Languages10.1145/34282674:OOPSLA(1-27)Online publication date: 13-Nov-2020
    • Show More Cited By

    Index Terms

    1. Loop Summarization Using Abstract Transformers
      Index terms have been assigned to the content through auto-classification.

      Recommendations

      Comments

      Information & Contributors

      Information

      Published In

      cover image Guide Proceedings
      ATVA '08: Proceedings of the 6th International Symposium on Automated Technology for Verification and Analysis
      October 2008
      427 pages
      ISBN:9783540883869
      • Editors:
      • Sungdeok (Steve) Cha,
      • Jin-Young Choi,
      • Moonzoo Kim,
      • Insup Lee,
      • Mahesh Viswanathan

      Publisher

      Springer-Verlag

      Berlin, Heidelberg

      Publication History

      Published: 20 October 2008

      Qualifiers

      • Article

      Contributors

      Other Metrics

      Bibliometrics & Citations

      Bibliometrics

      Article Metrics

      • Downloads (Last 12 months)0
      • Downloads (Last 6 weeks)0

      Other Metrics

      Citations

      Cited By

      View all
      • (2022)Veracity: declarative multicore programming with commutativityProceedings of the ACM on Programming Languages10.1145/35633496:OOPSLA2(1726-1756)Online publication date: 31-Oct-2022
      • (2021)Algebraic Program AnalysisComputer Aided Verification10.1007/978-3-030-81685-8_3(46-83)Online publication date: 20-Jul-2021
      • (2020)Termination analysis for evolving programs: an incremental approach by reusing certified modulesProceedings of the ACM on Programming Languages10.1145/34282674:OOPSLA(1-27)Online publication date: 13-Nov-2020
      • (2020)Demystifying loops in smart contractsProceedings of the 35th IEEE/ACM International Conference on Automated Software Engineering10.1145/3324884.3416626(262-274)Online publication date: 21-Dec-2020
      • (2018)A Survey of Symbolic Execution TechniquesACM Computing Surveys10.1145/318265751:3(1-39)Online publication date: 23-May-2018
      • (2017)Compositional recurrence analysis revisitedACM SIGPLAN Notices10.1145/3140587.306237352:6(248-262)Online publication date: 14-Jun-2017
      • (2017)Compositional recurrence analysis revisitedProceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/3062341.3062373(248-262)Online publication date: 14-Jun-2017
      • (2015)Compositional recurrence analysisProceedings of the 15th Conference on Formal Methods in Computer-Aided Design10.5555/2893529.2893544(57-64)Online publication date: 27-Sep-2015
      • (2014)Symbolic object code analysisInternational Journal on Software Tools for Technology Transfer (STTT)10.1007/s10009-012-0256-816:1(81-102)Online publication date: 1-Feb-2014
      • (2013)Under-Approximating Loops in C Programs for Fast Counterexample DetectionProceedings of the 25th International Conference on Computer Aided Verification - Volume 804410.5555/2958031.2958104(381-396)Online publication date: 13-Jul-2013
      • Show More Cited By

      View Options

      View options

      Get Access

      Login options

      Media

      Figures

      Other

      Tables

      Share

      Share

      Share this Publication link

      Share on social media