Skip to main content

Improving the results of static analyses of programs by local decreasing iterations

Extended abstract

  • Conference paper
  • First Online:
Foundations of Software Technology and Theoretical Computer Science (FSTTCS 1992)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 652))

Abstract

We present a new technique conceived for improving the accuracy of the results of static analyses of programs (such as constant propagation, range analysis, etc.). It relies on and complements the classical lattice-theoretic model for abstract interpretation [4], and is therefore defined at a very general level, although it applies only to analyses on numbers in this paper. The idea consists in embedding local decreasing iterations in the (global) iteration stage of the analysis; by local iterations, we mean that they correspond to some special control points of the program and not to the whole program to be analyzed. Special techniques dedicated to static analyses on numbers are developed to take full advantage of the method, which allows, in practice, to handle more efficiently conditional branches, assignments in backwards analysis, combinations of static analysis frameworks, and to combine abstract interpretation and symbolic evaluation. Several examples show that it may significantly improve the analysis results.

This research was supported in part by ESPRIT II Basic Research Action #3124 Sémantique (when the author was with the Laboratoire d'Informatique, Ecole Polytechnique, Palaiseau, France), and in part by a postdoctoral INRIA fellowship.

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

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. R. Allen, K. Kennedy, Automatic Translation of FORTRAN Programs to Vector Form, ACM Transactions on Programming Languages and Systems, Vol. 9, No. 4, pp. 491–542, 1987.

    Article  Google Scholar 

  2. G. L. Burn, C. L. Hankin, S. Abramsky, The Theory of Strictness Analysis for Higher Order Functions, Proceedings of the DIKU Workshop on Programs as Data Objects, LNCS 217, pp. 42–62, 1986.

    Google Scholar 

  3. P. Cousot, R. Cousot, Static Determination of Dynamic Properties of Programs, Proceedings of the 2nd International Symposium on Programming, Dunod, Paris, pp. 106–130, 1976.

    Google Scholar 

  4. P. Cousot, R. Cousot, Abstract Interpretation: a Unified Lattice Model for Static Analysis of Programs by Construction or Approximation of Fixpoints, Conf. Rec. of the 4th ACM Symposium on Principles of Programming Languages, pp. 238–252, 1977.

    Google Scholar 

  5. P. Cousot, R. Cousot, A Constructive Characterization of the Lattices of all Retractions, Preclosure, Quasi-closure and Closure Operators on a Complete Lattice, Portugaliae Mathematica, Vol. 38, Fasc. 1–2, pp. 185–198, 1979.

    Google Scholar 

  6. P. Cousot, R. Cousot, Constructive Versions of Tarski's Fixed Point Theorem, Pacific Journal of Mathematics, Vol. 82, No. 1, pp. 43–57, 1979.

    Google Scholar 

  7. P. Cousot, R. Cousot, Systematic Design of Program Analysis Frameworks, Conf. Rec. of the 6th ACM Symposium on Principles of Programming Languages, pp. 269–282, 1979.

    Google Scholar 

  8. P. Cousot, N. Halbwachs, Automatic Discovery of Linear Restraints among Variables of a Program, Conf. Rec. of the 5th ACM Symposium on Principles of Programming Languages, pp. 84–97, 1978.

    Google Scholar 

  9. A. Deutsch, A Storeless Model of Aliasing and its Abstractions using Finite Representations of Right-Regular Equivalence Relations, Proceedings of the 4th IEEE International Conference on Computer Languages, pp. 2–13, 1992.

    Google Scholar 

  10. S. M. German, B. Wegbreit, A Synthesizer of Inductive Assertions, IEEE Transactions on Software Engineering, Vol. se-1, No. 1, pp. 68–75, 1975.

    Google Scholar 

  11. P. Granger, Static Analysis of Arithmetical Congruences, International Journal of Computer Mathematics, Vol. 30, pp. 165–190, 1989.

    Google Scholar 

  12. P. Granger, Static Analysis of Linear Congruence Equalities among Variables of a Program, TAPSOFT'91, Proceedings of the International Joint conference on Theory and Practice of Software Development, Brighton, U.K., Vol. 1 (CAAP'91), LNCS 493, pp. 169–192, 1991.

    Google Scholar 

  13. J. B. Kam, J. D. Ullman, Global Data Flow Analysis and Iterative Algorithms, Journal of the Association for Computing Machinery, Vol. 23, No. 1, pp. 158–171, 1976.

    Google Scholar 

  14. M. Karr, Affine Relationships among Variables of a Program, Acta Informatica, Vol. 6, pp. 133–151, 1976.

    Article  Google Scholar 

  15. G. A. Kildall, A Unified Approach to Global Program Optimization, Conf. Rec. of the ACM Symposium on Principles of Programming Languages, pp. 194–206, 1973.

    Google Scholar 

  16. A. Lichnewsky, F. Thomasset, Introducing Symbolic Problem Solving Techniques in the Dependence Phases of a Vectorizer, Proceedings of the 2nd ACM International Conference on Supercomputing, Saint-Malo, France, pp. 396–406, 1988.

    Google Scholar 

  17. A. Mycroft, The Theory and Practice of Transforming Call-by-need into Call-by-value, Proceedings of the 4th International Symposium on Programming, LNCS 83, pp. 269–281, 1980.

    Google Scholar 

  18. J. H. Reif, H. R. Lewis, Symbolic Evaluation and the Global Value Graph, Conf. Rec. of the 4th ACM Symposium on Principles of Programming Languages, pp. 104–118, 1977.

    Google Scholar 

  19. B. Steffen, J. Knoop, Finite Constants: Characterizations of a New Decidable Set of Constants, Proceedings of Mathematical Foundations of Computer Science 1989, LNCS 379, pp. 481–491, 1989.

    Google Scholar 

  20. B. Wegbreit, Property Extraction in Well-founded Property Sets, IEEE Transactions on Software Engineering, Vol. se-1, No. 3, pp. 270–285, 1975.

    Google Scholar 

  21. M. N. Wegman, F. K. Zadeck, Constant Propagation with Conditional Branches, Conf. Rec. of the 12th ACM Symposium on Principles of Programming Languages, pp. 291–299, 1985.

    Google Scholar 

  22. O. Zariski, P. Samuel, Commutative Algebra, Vol. 1, Van Nostrand, 1958.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Rudrapatna Shyamasundar

Rights and permissions

Reprints and permissions

Copyright information

© 1992 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Granger, P. (1992). Improving the results of static analyses of programs by local decreasing iterations. In: Shyamasundar, R. (eds) Foundations of Software Technology and Theoretical Computer Science. FSTTCS 1992. Lecture Notes in Computer Science, vol 652. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-56287-7_95

Download citation

  • DOI: https://doi.org/10.1007/3-540-56287-7_95

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-56287-0

  • Online ISBN: 978-3-540-47507-1

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics