Skip to main content
Log in

Program analysis using empirical abstraction

  • General
  • Special Issue: RV 2020
  • Published:
International Journal on Software Tools for Technology Transfer Aims and scope Submit manuscript

Abstract

Given a program analysis problem that consists of a program and a property of interest, we use an empirical approach to automatically construct a sequence of abstractions that approach an ideal abstraction suitable for solving that problem. This process begins with an infinite concrete domain that maps to a finite abstract cluster domain defined by statistical procedures. Given a set of properties expressed as formulas in a restricted and bounded variant of CTL, we can test the success of the abstraction with respect to a predefined performance measure. In addition, we can perform iterative abstraction-refinement of the clustering by tuning hyperparameters that determine the accuracy of the cluster representations (abstract states) and determine the number of clusters.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. 20th International Conference on Runtime Verification. https://rv20.ait.ac.at/awards/

  2. Alvin, C., Peterson, B., Staticgen, S.M.: Static generation of UML sequence diagrams. In: Fundamental Approaches to Software Engineering – 20th International Conference, FASE 2017, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2017, Proceedings, Uppsala, Sweden, April 22–29, 2017, Lecture Notes in Computer Science, vol. 10202, pp. 173–190. Springer, Berlin (2017)

    Google Scholar 

  3. Beckman, N.E., Nori, A.V., Rajamani, S.K., Simmons, R.J.: Proofs from tests. In: Proceedings of the ACM/SIGSOFT International Symposium on Software Testing and Analysis, ISSTA 2008, Seattle, WA, USA, July 20–24, 2008, pp. 3–14 (2008)

    Google Scholar 

  4. Bielik, P., Raychev, V., Vechev, M.T.: PHOG: probabilistic model for code. In: Proceedings of the 33nd International Conference on Machine Learning, ICML 2016, New York City, NY, USA, June 19–24, 2016, pp. 2933–2942 (2016)

    Google Scholar 

  5. Bielik, P., Raychev, V., Vechev, M.T.: Learning a static analyzer from data. In: Computer Aided Verification – 29th International Conference, CAV 2017, Proceedings, Part I. Heidelberg, Germany, July 24–28, 2017, pp. 233–253 (2017)

    Google Scholar 

  6. Blumer, A., Ehrenfeucht, A., Haussler, D., Warmuth, M.K.: Learnability and the Vapnik–Chervonenkis dimension. J. ACM 36(4), 929–965 (1989)

    Article  MathSciNet  MATH  Google Scholar 

  7. CIL. C intermediate language, 2021

  8. Chen, Y., Hsieh, C., Lengál, O., Lii, T., Tsai, M., Wang, B., Wang, F.: PAC learning-based verification and model synthesis. In: Proceedings of the 38th International Conference on Software Engineering, ICSE 2016, Austin, TX, USA, May 14–22, 2016, pp. 714–724 (2016)

    Google Scholar 

  9. Clarke, E.M., Emerson, E.A.: Design and synthesis of synchronization skeletons using branching-time temporal logic. In: Kozen, D. (ed.) Logics of Programs, Workshop, Yorktown Heights, New York, USA, May 1981. Lecture Notes in Computer Science, vol. 131, pp. 52–71. Springer, Berlin (1981)

    Chapter  Google Scholar 

  10. Cousot, P., Cousot, R.: Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In: Conference Record of the Fourth Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, Los Angeles, California, pp. 238–252. ACM Press, New York (1977)

    Google Scholar 

  11. Cousot, P., Monerau, M.: Probabilistic abstract interpretation. In: Programming Languages and Systems – 21st European Symposium on Programming, ESOP 2012, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2012, Proceedings. Tallinn, Estonia, March 24–April 1, 2012, pp. 169–193 (2012)

    Google Scholar 

  12. Deshmukh, J.V., Majumdar, R., Prabhu, V.S.: Quantifying conformance using the Skorokhod metric. Form. Methods Syst. Des. 50(2–3), 168–206 (2017)

    Article  MATH  Google Scholar 

  13. Elbaum, S., Malishevsky, A., Rothermel, G.: Test case prioritization: a family of empirical studies. IEEE Trans. Softw. Eng. 28(2), 159–182 (2002)

    Article  Google Scholar 

  14. Emerson, E.A., Clarke, E.M.: Using branching time temporal logic to synthesize synchronization skeletons. Sci. Comput. Program. 2(3), 241–266 (1982)

    Article  MATH  Google Scholar 

  15. Flach, P.: Machine Learning: The Art and Science of Algorithms That Make Sense of Data. Cambridge University Press, New York (2012)

    Book  MATH  Google Scholar 

  16. Gehr, T., Dimitrov, D., Vechev, M.T.: Learning commutativity specifications. In: Computer Aided Verification – 27th International Conference, CAV 2015, Proceedings, Part I, San Francisco, CA, USA, July 18–24, 2015, pp. 307–323 (2015)

    Google Scholar 

  17. Graf, S., Saïdi, H.: Construction of abstract state graphs with PVS. In: Computer Aided Verification, 9th International Conference, CAV’97, Proceedings, Haifa, Israel, June 22–25, 1997, pp. 72–83 (1997)

    Chapter  Google Scholar 

  18. Gulavani, B.S., Henzinger, T.A., Kannan, Y., Nori, A.V., Rajamani, S.K.: SYNERGY: a new algorithm for property checking. In: Proceedings of the 14th ACM SIGSOFT International Symposium on Foundations of Software Engineering, FSE 2006, Portland, Oregon, USA, November 5–11, 2006, pp. 117–127 (2006)

    Chapter  Google Scholar 

  19. Ho, V.M., Alvin, C., Mukhopadhyay, S., Peterson, B., Lawson, J.D.: Empirical abstraction. In: Deshmukh, J., Nickovic, D. (eds.) Runtime Verification – 20th International Conference, RV 2020, Proceedings. Los Angeles, CA, USA, October 6–9, 2020, Lecture Notes in Computer Science, vol. 12399, pp. 259–278. Springer, Berlin (2020)

    Google Scholar 

  20. Jobstmann, B., Leino, K.R.M. (eds.): Verification, Model Checking, and Abstract Interpretation – 17th International Conference, VMCAI 2016, Proceedings. Lecture Notes in Computer Science, St. Petersburg, FL, USA, January 17–19, 2016, vol. 9583. Springer, Berlin (2016)

    MATH  Google Scholar 

  21. Laviron, V., Logozzo, F.: Refining abstract interpretation-based static analyses with hints. In: APLAS, pp. 343–358 (2009)

    Google Scholar 

  22. Liang, P., Tripp, O., Naik, M.: Learning minimal abstractions. In: POPL, pp. 31–42 (2011)

    Google Scholar 

  23. Mauborgne, L., Rival, X.: Trace partitioning in abstract interpretation based static analyzers. In: ESOP, pp. 5–20 (2005)

    Google Scholar 

  24. Monniaux, D.: Abstract interpretation of programs as Markov decision processes. In: Static Analysis, 10th International Symposium, SAS 2003, Proceedings. San Diego, CA, USA, June 11–13, 2003, pp. 237–254 (2003)

    Google Scholar 

  25. Mukhopadhyay, S., Podelski, A.: Beyond region graphs: symbolic forward analysis of timed automata. In: Rangan, C.P., Raman, V., Ramanujam, R. (eds.) Foundations of Software Technology and Theoretical Computer Science, 19th Conference, Chennai, India, December 13–15, 1999. Lecture Notes in Computer Science, vol. 1738, pp. 232–244. Springer, Berlin (1999)

    Chapter  MATH  Google Scholar 

  26. Munkres, J.R.: Topology. Pearson Education, Upper Saddle River (2013)

    MATH  Google Scholar 

  27. Nori, A.V., Rajamani, S.K., Tetali, S., Thakur, A.V.: The Yogi project: software property checking via static analysis and testing. In: Tools and Algorithms for the Construction and Analysis of Systems, 15th International Conference, TACAS 2009, Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009, Proceedings. York, UK, March 22–29, 2009, pp. 178–181 (2009)

    Google Scholar 

  28. Ore, O.: Galois connexions. Trans. Am. Math. Soc. 55, 493–513 (1944)

    Article  MathSciNet  MATH  Google Scholar 

  29. Padhi, S., Sharma, R., Millstein, T.D.: Data-driven precondition inference with learned features. In: Proceedings of the 37th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2016, Santa Barbara, CA, USA, June 13–17, 2016, pp. 42–56 (2016)

    Google Scholar 

  30. Rival, X., Mauborgne, L.: The trace partitioning abstract domain. ACM Trans. Program. Lang. Syst. 29(5) (2007)

  31. Sankaranarayanan, S., Chaudhuri, S., Ivancic, F., Gupta, A.: Dynamic inference of likely data preconditions over predicates by tree learning. In: Proceedings of the ACM/SIGSOFT International Symposium on Software Testing and Analysis, ISSTA 2008, Seattle, WA, USA, July 20–24, 2008, pp. 295–306 (2008)

    Google Scholar 

  32. Sharma, R.: Data-driven verification. PhD thesis, Stanford (2016)

  33. Sharma, R., Nori, A.V., Aiken, A.: Bias–variance tradeoffs in program analysis. In: POPL, pp. 127–138 (2014)

    Google Scholar 

  34. Smith, M.J.A.: Probabilistic abstract interpretation of imperative programs using truncated normal distributions. Electron. Notes Theor. Comput. Sci. 220(3), 43–59 (2008)

    Article  MATH  Google Scholar 

  35. LLVM. The LLVM project, 2021

  36. Wasserman, L.: All of Nonparametric Statistics. Springer Texts in Statistics. Springer, Secaucus (2006)

    MATH  Google Scholar 

  37. Yau, S.S., Davulcu, H., Mukhopadhyay, S., Huang, D., Gong, H., Singh, P., Gelgi, F.: Automated situation-aware service composition in service-oriented computing. Int. J. Web Serv. Res. 4(4), 59–82 (2007)

    Article  Google Scholar 

  38. Zhang, X., Naik, M., Yang, H.: Finding optimum abstractions in parametric dataflow analysis. In: PLDI, pp. 365–376 (2013)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Chris Alvin.

Additional information

Publisher’s Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rights and permissions

Springer Nature or its licensor (e.g. a society or other partner) holds exclusive rights to this article under a publishing agreement with the author(s) or other rightsholder(s); author self-archiving of the accepted manuscript version of this article is solely governed by the terms of such publishing agreement and applicable law.

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Ho, V.M., Alvin, C., Lawson, J.D. et al. Program analysis using empirical abstraction. Int J Softw Tools Technol Transfer 25, 431–452 (2023). https://doi.org/10.1007/s10009-023-00709-y

Download citation

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10009-023-00709-y

Keywords

Navigation