Galois connection based abstract interpretations for strictness analysis
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.
KeywordsAbstract interpretation Relational semantics Strictness analysis Galois connection Dependence-free and dependence-sensitive analysis Widening
Unable to display preview. Download preview PDF.
- [AH87]S. Abramsky & C. Hankin, eds. Abstract Interpretation of Declarative Languages. Computers and their Applications. Ellis Horwood, 1987.Google Scholar
- [Bry86]R. E. Bryant. Graph-based algorithms for boolean function manipulation. IEEE Trans. Comput., C-35(8), 1986.Google Scholar
- [CC77a]P. Cousot & R. Cousot. Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In 4th POPL, pp. 238–252, Los Angeles, California, 1977. ACM Press.Google Scholar
- [CC77b]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.Google Scholar
- [CC77c]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.Google Scholar
- [CC79a]P. Cousot & R. Cousot. Constructive versions of Tarski's fixed point theorems. Pacific J. Math., 82(1):43–57, 1979.Google Scholar
- [CC79b]P. Cousot & R. Cousot. Systematic design of program analysis frameworks. In 6th POPL, pp. 269–282, San Antonio, Texas, 1979. ACM Press.Google Scholar
- [CC92]P. Cousot & R. Cousot. Inductive definitions, semantics and abstract interpretation. In 19th POPL, pp. 83–94, Albuquerque, New Mexico, 1992. ACM Press.Google Scholar
- [DW90]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.Google Scholar
- [Hug88]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.Google Scholar
- [HY86]P. Hudak & J. Young. Higher-order strictness analysis in untyped lambda calculus. In 12th POPL, pp. 97–109. ACM Press, Jan. 1986.Google Scholar
- [JM81]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.Google Scholar
- [JM86]N. D. Jones & A. Mycroft. Data flow analysis of applicative programs using minimal function graphs: abridged version. In 13th POPL, pp. 296–306, St. Petersburg Beach, Florida, 1986. ACM Press.Google Scholar
- [Joh81]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.Google Scholar
- [Mil78]R. Milner. A theory of polymorphism in programming. J. Comput. Sys. Sci., 17(3):348–375, Dec. 1978.Google Scholar
- [MJ86]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.Google Scholar
- [MN83]A. Mycroft & F. Nielson. Strong abstract interpretation using power domains. In J. Diaz, ed., Tenth ICALP, LNCS 154, pp. 536–547. Springer-Verlag, 1983.Google Scholar
- [Mos90]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.Google Scholar
- [Myc80]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.Google Scholar
- [Myc81]A. Mycroft. 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.Google Scholar
- [Nie88]F. Nielson. Strictness analysis and denotational abstract interpretation. Inf. & Comp., 76(1):29–92, 1988.Google Scholar
- [SMR91]R. C. Sekar, P. Mishra, & I. V. Ramakrishnan. On the power and limitation of strictness analysis based on abstract interpretation. In 18 th POPL, pp. 37–48, Orlando, Florida, 1991. ACM Press.Google Scholar