Galois connection based abstract interpretations for strictness analysis
Conference paper First Online: 09 June 2005 DOI:
Part of the
Lecture Notes in Computer Science
book series (LNCS, volume 735) Cite this paper as: Cousot P., Cousot R. (1993) Galois connection based abstract interpretations for strictness analysis. In: Bjørner D., Broy M., Pottosin I.V. (eds) Formal Methods in Programming and Their Applications. Lecture Notes in Computer Science, vol 735. Springer, Berlin, Heidelberg Abstract
The abstract interpretation framework based upon the approximation of a fixpoint collecting semantics using Galois connections and widening/narrowing operators on complete lattices [CC77a, CC79b] has been considered difficult to apply to Mycroft's strictness analysis [Myc80, Myc81] for which denotational semantics was though to be more adequate (because non-termination has to be taken into account), see e.g. [AH87], page 25.
Considering a non-deterministic first-order language, we show, contrary to expectation, and using the classical Galois connection-based framework, that Mycroft strictness analysis algorithm is the abstract interpretation of a relational semantics (a big-steps operational semantics including non-termination which can be defined in G
∞SOS either in rule-based or fixpoint style by induction on the syntax of programs [CC92])
An improved version of Johnsson's algorithm [Joh81] is obtained by a subsequent dependence-free abstraction of Mycroft's dependence-sensitive method.
Finally, a compromise between the precision of dependence-sensitive algorithms and the efficiency of dependence-free algorithms is suggested using widening operators.
Keywords Abstract interpretation Relational semantics Strictness analysis Galois connection Dependence-free and dependence-sensitive analysis Widening References
S. Abramsky & C. Hankin, eds.
Abstract Interpretation of Declarative Languages. Computers and their Applications. Ellis Horwood, 1987.
R. E. Bryant. Graph-based algorithms for boolean function manipulation.
IEEE Trans. Comput., C-35(8), 1986.
P. Cousot & R. Cousot. Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In
, pp. 238–252, Los Angeles, California, 1977. ACM Press.
P. Cousot & R. Cousot. Automatic synthesis of optimal invariant assertions: mathematical foundations. In
ACM Symposium on Artificial Intelligence & Programming Languages
, Rochester, New York, SIGPLAN Notices 12(8):1–12, 1977.
P. Cousot & R. Cousot. Static determination of dynamic properties of recursive procedures. In E.J. Neuhold, ed.,
IFIP Conference on Formal Description of Programming Concepts
, St-Andrews, N.B., Canada, pp. 237–277. North-Holland, 1977.
P. Cousot & R. Cousot. Constructive versions of Tarski's fixed point theorems.
Pacific J. Math.
, 82(1):43–57, 1979.
P. Cousot & R. Cousot. Systematic design of program analysis frameworks. In
, pp. 269–282, San Antonio, Texas, 1979. ACM Press.
P. Cousot & R. Cousot. Inductive definitions, semantics and abstract interpretation. In
, pp. 83–94, Albuquerque, New Mexico, 1992. ACM Press.
K. Davis & P. Wadler. Strictness analysis in 4D. In S.L. Peyton Jones, G. Hutton, & C. Kehler Holst, eds.,
Functional Programming, Glasgow 1990
, Proc. 1990 Glasgow Workshop on Functional Programming, Ullapool, Scotland, pp. 23–43. Springer-Verlag, 13–15 Aug. 1990.
R. J. M. Hughes. Backwards analysis of functional programs. In A. P. Bjørner D., Ershov & N. D. Jones, eds.,
Partial Evaluation and Mixed Computation
, Proceedings IFIP TC2 Workshop, Gammel Avernaes, Denmark, pp. 187–208. Elsevier, Oct. 1988.
P. Hudak & J. Young. Higher-order strictness analysis in untyped lambda calculus. In
12th POPL, pp. 97–109. ACM Press, Jan. 1986.
N. D. Jones & S. S. Muchnick. Complexity of flow analysis, inductive assertion synthesis and a language due to Dijkstra. In S. S. Muchnick & N. D. Jones, eds.,
Program Flow Analysis: Theory and Applications, ch. 12, pp. 380–393. Prentice-Hall, 1981.
N. D. Jones & A. Mycroft. Data flow analysis of applicative programs using minimal function graphs: abridged version. In
, pp. 296–306, St. Petersburg Beach, Florida, 1986. ACM Press.
T. Johnsson. Detecting when call-by-value can be used instead of call-by-need. Research Report LPM MEMO 14, Laboratory for Programming Methodology, Department of Computer Science, Chalmers University of Technology, S–412 96 Göteborg, Sweden, Oct. 1981.
R. Milner. A theory of polymorphism in programming.
J. Comput. Sys. Sci.
, 17(3):348–375, Dec. 1978.
A. Mycroft & N. D. Jones. A relational framework for abstract interpretation. In N. D. Jones & H. Ganzinger, eds.,
Programs as Data Objects
Proceedings of a Workshop
, Copenhagen, Denmark, 17–19 Oct. 1985, LNCS 215, pp. 156–171. Springer-Verlag, 1986.
A. Mycroft & F. Nielson. Strong abstract interpretation using power domains. In J. Diaz, ed.,
Tenth ICALP, LNCS 154, pp. 536–547. Springer-Verlag, 1983.
P. D. Mosses. Denotational semantics. In J. van Leeuwen, ed.,
Formal Models and Semantics, vol. B of Handbook of Theoretical Computer Science, ch. 11, pp. 575–631. Elsevier, 1990.
A. Mycroft. The theory and practice of transforming call-by-need into call-by-value. In B. Robinet, ed.,
Proc. Fourth International Symposium on Programming
, Paris, France, 22–24 Apr. 1980, LNCS 83, pp. 270–281. Springer-Verlag, 1980.
Abstract Interpretation and Optimising Transformations for Applicative Programs
. Ph.D. Dissertation, CST-15-81, Department of Computer Science, University of Edinburgh, Edinburgh, Scotland, Dec. 1981.
F. Nielson. Strictness analysis and denotational abstract interpretation.
Inf. & Comp.
, 76(1):29–92, 1988.
R. C. Sekar, P. Mishra, & I. V. Ramakrishnan. On the power and limitation of strictness analysis based on abstract interpretation. In
, pp. 37–48, Orlando, Florida, 1991. ACM Press.