Advertisement

Enforcing Termination of Interprocedural Analysis

  • Stefan Schulze Frielinghaus
  • Helmut Seidl
  • Ralf Vogler
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9837)

Abstract

Interprocedural analysis by means of partial tabulation of summary functions may not terminate when the same procedure is analyzed for infinitely many abstract calling contexts or when the abstract domain has infinite strictly ascending chains. As a remedy, we present a novel local solver for general abstract equation systems, be they monotonic or not, and prove that this solver fails to terminate only when infinitely many variables are encountered. We clarify in which sense the computed results are sound. Moreover, we show that interprocedural analysis performed by this novel local solver, is guaranteed to terminate for all non-recursive programs — irrespective of whether the complete lattice is infinite or has infinite strictly ascending or descending chains.

Keywords

Complete Lattice Variable Assignment Abstract System Program Point Galois Connection 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Supplementary material

References

  1. 1.
    Alt, M., Martin, F.: Generation of efficient interprocedural analyzers with PAG. In: Mycroft, A. (ed.) SAS 1995. LNCS, vol. 983, pp. 33–50. Springer, Heidelberg (1995)CrossRefGoogle Scholar
  2. 2.
    Amato, G., Scozzari, F., Seidl, H., Apinis, K., Vojdani, V.: Efficiently intertwining widening and narrowing. Sci. Comput. Program. 120, 1–24 (2016)CrossRefGoogle Scholar
  3. 3.
    Apinis, K., Seidl, H., Vojdani, V.: Side-effecting constraint systems: a swiss army knife for program analysis. In: Igarashi, A., Jhala, R. (eds.) APLAS 2012. LNCS, vol. 7705, pp. 157–172. Springer, Heidelberg (2012)Google Scholar
  4. 4.
    Apinis, K., Seidl, H., Vojdani, V.: How to combine widening and narrowing for non-monotonic systems of equations. In: 34th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), pp. 377–386. ACM (2013)Google Scholar
  5. 5.
    Apinis, K., Seidl, H., Vojdani, V.: Enhancing top-down solving with widening and narrowing. In: Probst, C.W., Hankin, C., Hansen, R.R. (eds.) Nielsons’ Festschrift. LNCS, vol. 9560, pp. 272–288. Springer, Heidelberg (2016). doi: 10.1007/978-3-319-27810-0_14 CrossRefGoogle Scholar
  6. 6.
    Bagnara, R., Hill, P.M., Ricci, E., Zaffanella, E.: Precise widening operators for convex polyhedra. Sci. Comput. Program. 58(1–2), 28–56 (2005)MathSciNetCrossRefzbMATHGoogle Scholar
  7. 7.
    Bourdoncle, F.: Efficient chaotic iteration strategies with widenings. In: Bjørner, D., Broy, M., Pottosin, I.V. (eds.) Formal Methods in Programming and Their Applications. LNCS, vol. 735, pp. 128–141. Springer, Heidelberg (1993)CrossRefGoogle Scholar
  8. 8.
    Chen, L., Miné, A., Wang, J., Cousot, P.: An abstract domain to discover interval linear equalities. In: Barthe, G., Hermenegildo, M. (eds.) VMCAI 2010. LNCS, vol. 5944, pp. 112–128. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  9. 9.
    Cousot, P.: Abstracting induction by extrapolation and interpolation. In: D’Souza, D., Lal, A., Larsen, K.G. (eds.) VMCAI 2015. LNCS, vol. 8931, pp. 19–42. Springer, Heidelberg (2015)Google Scholar
  10. 10.
    Cousot, P., Cousot, R.: Abstract interpretation: a unified lattice model for static analysisof programs by construction or approximation of fixpoints. In: Fourth ACM Symposium on Principles of Programming Languages (POPL), pp. 238–252. ACM (1977)Google Scholar
  11. 11.
    Cousot, P., Cousot, R.: Static determination of dynamic properties of generalized type unions. In: ACM Conference on Language Design for Reliable Software (LDRS), pp. 77–94. ACM (1977)Google Scholar
  12. 12.
    Cousot, P., Cousot, R.: Static determination of dynamic properties of recursive procedures. In: IFIP Conference on Formal Description of Programming Concepts, pp. 237–277, North-Holland (1977)Google Scholar
  13. 13.
    Cousot, P., Cousot, R.: Abstract interpretation frameworks. J. Log. Comput. 2(4), 511–547 (1992)MathSciNetCrossRefzbMATHGoogle Scholar
  14. 14.
    Cousot, P., Cousot, R., Feret, J., Mauborgne, L., Miné, A., Rival, X.: Why does Astrée scale up? Formal Methods Syst. Design 35(3), 229–264 (2009)CrossRefzbMATHGoogle Scholar
  15. 15.
    Fecht, C., Seidl, H.: An even faster solver for general systems of equations. In: Cousot, R., Schmidt, D.A. (eds.) SAS 1996. LNCS, vol. 1145. Springer, Heidelberg (1996)CrossRefGoogle Scholar
  16. 16.
    Gonnord, L., Halbwachs, N.: Combining widening and acceleration in linear relation analysis. In: Yi, K. (ed.) SAS 2006. LNCS, vol. 4134, pp. 144–160. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  17. 17.
    Hermenegildo, M.V., Bueno, F., Carro, M., López-García, P., Mera, E., Morales, J.F., Puebla, G.: An overview of Ciao and its design philosophy. Theor. Pract. Log. Program. 12(1–2), 219–252 (2012)MathSciNetCrossRefzbMATHGoogle Scholar
  18. 18.
    Hermenegildo, M.V., Puebla, G., Bueno, F., López-García, P.: Integrated program debugging, verification, and optimization using abstract interpretation (and the Ciao system preprocessor). Sci. Comput. Program. 58(1–2), 115–140 (2005)MathSciNetCrossRefzbMATHGoogle Scholar
  19. 19.
    Hofmann, M., Karbyshev, A., Seidl, H.: Verifying a local generic solver in Coq. In: Cousot, R., Martel, M. (eds.) SAS 2010. LNCS, vol. 6337, pp. 340–355. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  20. 20.
    Hofmann, M., Karbyshev, A., Seidl, H.: What is a pure functional? In: Gavoille, C., Kirchner, C., Meyer auf der Heide, F., Spirakis, P.G., Abramsky, S. (eds.) ICALP 2010. LNCS, vol. 6199, pp. 199–210. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  21. 21.
    Karbyshev, A.: Monadic Parametricity of Second-Order Functionals. Ph.D. thesis, Institut für Informatik, Technische Universität München, September 2013Google Scholar
  22. 22.
    MacNeille, H.M.: Partially ordered sets. Trans. Amer. Math. Soc. 42(3), 416–460 (1937)MathSciNetCrossRefzbMATHGoogle Scholar
  23. 23.
    Muthukumar, K., Hermenegildo, M.V.: Deriving a fixpoint computation algorithm for top-down abstract interpretation of logic programs. Technical report ACT-DC-153-90, Microelectronics and Computer Technology Corporation (MCC), Austin, TX 78759, April 1990Google Scholar
  24. 24.
    Schulze Frielinghaus, S., Seidl, H., Vogler, R.: Enforcing termination of interprocedural analysis. arXiv e-prints (2016). http://arxiv.org/abs/1606.07687
  25. 25.
    Seidl, H., Fecht, C.: Interprocedural analyses: a comparison. J. Logic Program. 43(2), 123–156 (2000)MathSciNetCrossRefzbMATHGoogle Scholar
  26. 26.
    Sharir, M., Pnueli, A.: Two approaches to interprocedural data flow analysis.In: Muchnick, S., Jones, N. (eds.) Program Flow Analysis: Theory and Application, pp. 189–233. Prentice-Hall (1981)Google Scholar

Copyright information

© Springer-Verlag GmbH Germany 2016

Authors and Affiliations

  • Stefan Schulze Frielinghaus
    • 1
  • Helmut Seidl
    • 1
  • Ralf Vogler
    • 1
  1. 1.Fakultät für InformatikTU MünchenMunichGermany

Personalised recommendations