Galois connection based abstract interpretations for strictness analysis
Conference paper First Online: 09 June 2005
Part of the
Lecture Notes in Computer Science
book series (LNCS, volume 735) 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
, 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.,
, 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.