Static analysis of linear congruence equalities among variables of a program

  • Philippe Granger
CAAP Colloquium On Trees In Algebra And Programming
Part of the Lecture Notes in Computer Science book series (LNCS, volume 493)


This paper is dedicated to the presentation of a new static analysis of programs conceived for discovering linear congruence equations satisfied by integer valued variables (or more generally by any set of integer values abstracted from a program). This analysis generalizes both P. Granger's arithmetical congruence analysis and M. Karr's affine equation analysis. An example shows that it can provide valuable results for automatic vectorization.

Key words

Abstract Interpretation Semantic Analysis of Programs Diophantine Linear Congruence Equation Systems Compilers Automatic Vectorization 


  1. [1]
    R. Allen & K. Kennedy, Automatic translation of FORTRAN program to vector form, ACM Transactions on Programming Languages and Systems 9(4), 491–542, 1987.Google Scholar
  2. [2]
    P. Cousot, & R. Cousot, Static determination of dynamic properties of programs, Proc. 2nd Int. Symp. on Programming, Dunod, Paris, 106–130, 1976.Google Scholar
  3. [3]
    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 Symp. on Principles of Programming Languages, Los Angeles, Calif., 238–252, 1977.Google Scholar
  4. [4]
    P. Cousot, & R. Cousot, Systematic design of program analysis frameworks, Conf. Rec. of the 6th ACM Symp. on Principles of Programming Languages, San Antonio, Texas, 269–2Google Scholar
  5. [5]
    P. Cousot & N. Halbwachs, Automatic discovery of linear restraints among variables of a program, Conf. Rec. of the 5th ACM Symp. on Principles of Programming Languages, Tucson, Ariz., 84–97, 1978.Google Scholar
  6. [6]
    L.E. Dickson, History of the theory of numbers, vol. 2, Carnegie Institution, Washington, 1919.Google Scholar
  7. [7]
    P. Granger, Static analysis of arithmetical congruences, Int. Journal of Computer Mathematics 30, 165–190, 1989.Google Scholar
  8. [8]
    N. Jacobson, Basic Algebra I, W.H. Freeman and Company, 1985.Google Scholar
  9. [9]
    M. Karr, Affine relationships among variables of a program, Acta Informatica 6, 133–151, 1976.Google Scholar
  10. [10]
    D.E. Knuth, The art of computer programming, 2nd ed., vol. 2, 326–327, Addison-Wesley, 1981.Google Scholar
  11. [11]
    S. Lang, Algebra, Addison-Wesley, 1965.Google Scholar
  12. [12]
    N. Mercouroff, Analyse sémantique des communications entre processus de programmes parallèles, Thèse de l'Ecole Polytechnique, 1990.Google Scholar
  13. [13]
    H.M. Stark, An introduction to number theory, Markham Publishing Company, 1970.Google Scholar
  14. [14]
    G.W. Stewart, Introduction to matrix computations, Academic Press, 1973.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1991

Authors and Affiliations

  • Philippe Granger
    • 1
  1. 1.Ecole Polytechnique, LIXPalaiseau CedexFrance

Personalised recommendations