Computation of aliases and support sets

We provide a scheme for determining which global variables are involved when an expression is evaluated in a language with higher order constructs and imperative features. The heart of our scheme is a mechanism for computing the support of an expression, i.e. the set of global variables involved in its evaluation. This computation requires knowledge of all the aliases of an expression. The inference schemes are presented as abstract semantic interpretations. We prove the soundness of our estimates by establishing a correspondence between the abstract semantics and the standard semantics of the programming language.

[1]  Flemming Nielson,et al.  Strong Abstract Interpretation Using Power Domains (Extended Abstract) , 1983, ICALP.

[2]  Paul Hudak,et al.  Higher-order strictness analysis in untyped lambda calculus , 1986, POPL '86.

[3]  Robert M. Keller,et al.  Static inference of properties of applicative programs , 1984, POPL.

[4]  John Banning,et al.  : An Efficient , 2022 .

[5]  William E. Weihl,et al.  Interprocedural data flow analysis in the presence of pointers, procedure variables, and label variables , 1980, POPL '80.

[6]  Prateek Mishra Static inference in applicative languages (semantics, type-checking, optimization) , 1985 .

[7]  Patrick Cousot,et al.  Static determination of dynamic properties of programs , 1976 .

[8]  Alan Mycroft,et al.  The Theory and Practice of Transforming Call-by-need into Call-by-value , 1980, Symposium on Programming.

[9]  Simon L. Peyton Jones,et al.  Strictness Analysis - A Practical Approach , 1985, FPCA.

[10]  Flemming Nielson,et al.  Program transformations in a denotational setting , 1981, ACM Trans. Program. Lang. Syst..

[11]  Patrick Cousot,et al.  Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints , 1977, POPL.

[12]  Chris Hankin,et al.  The theory and practice of strictness analysis for higher order functions , 1985 .

[13]  Neil D. Jones,et al.  A relational framework for abstract interpretation , 1985, Programs as Data Objects.

[14]  Samson Abramsky,et al.  Strictness analysis and polymorphic invariance , 1985, Programs as Data Objects.

[15]  David K. Gifford,et al.  Integrating functional and imperative programming , 1986, LFP '86.

[16]  Jeffrey M. Barth A practical interprocedural data flow analysis algorithm , 1978, CACM.

[17]  Chris Hankin,et al.  The theory of strictness analysis for higher order functions , 1985, Programs as Data Objects.