Abstract
When programs are intended for parallel execution it becomes critical to determine whether the evaluations of two expressions can be carried out independently. We provide a scheme for making such determinations in a typed language with higher-order constructs and imperative features. The heart of our scheme is a mechanism for estimating thesupport 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 in a compositional fashion reminiscent of abstract interpretation. We prove the soundness of our estimates with respect to the standard semantics of the language.
Similar content being viewed by others
References
A. Neirynck, P. Panangaden, and A. J. Demers, Computation of Aliases and Support Sets, InProc. of the Fourteenth Annual ACM Symp. on Principle of Programming Languages, pp. 274–283 (1987).
M. J. Gordon, A. J. R. Milner, and C. P. Wadsworth,Edinburgh LCF, LNCS 78. Springer-Verlag (1979).
M. Burke and R. Cytron, Interprocedural Dependence Analysis and Parallelization,ACM Sigplan Notices,21(7):162–175 (1986).
K. Kennedy, J. R. Allen, and D. Callahan, An Implementation of Inter-procedural Analysis in a Vectorizing Fortran Compiler, Technical Report TR86-38, Rice University (1986).
K. Cooper, Analyzing Aliases of Reference Formal Parameters, InConf. Record of the Twelfth Annual ACM Symp. on Principles of Programming Languages, ACM, pp. 281–290 (1985).
P. Cousot and R. Cousot, Abstract Interpretation: A Unified Lattice Model for Static Analysis of Programs by Construction or Approximation of Fixpoints, InConf. Record of the 4th ACM Symp. on Principles of Programming Languages (1977).
P. Cousot and R. Cousot, Static Determination of Dynamic Properties of Programs, InProc. of the 2nd Int'l Symp. on Programming (1976).
A. Mycroft and F. Nielson, Strong Abstract Interpretation Using Power Domains, InProc. ICALP 1983, Lecture Notes in Computer Science,154:536–5447. Springer-Verlag (1983).
G. L. Burn, C. L. Hankin, and S. Abramsky, The Theory and Practice of Strictness Analysis for Higher Order Functions,Proc. of Programs as Data Objects, Springer Lecture Notes in Computer Science, Vol. 217 (1986).
A. J. Bernstein, Analysis of Programs for Parallel Processing,IEEE Transactions on Electronic Computers,EC-15(5):757–763 (October 1966).
J. P. Banning, An Efficient Way to Find the Side-effects of Procedure Calls and the Aliases of Variables, InProc. of the Sixth Annual ACM Symp. on Principles of Programming Languages, pp. 29–41 (1979).
J. Barth, A Practical Interprocedural Data Flow Analysis Algorithm,CACM,21:724–736 (1978).
W. Weihl, Interprocedural Data Flow Analysis in the Presence of Pointers, Procedure Variables, and Label Variables, InProc. of the Seventh Annual ACM Symp. on Principles of Programming Languages, pp. 83–94 (1980).
J. R. Larus and P. N. Hilfinger, Detecting Conflicts Between Structure Accesses, InProc. of the SIGPLAN 88 Conf. on Programming Language Design and Implementation, pp. 21–34 (1988).
L. J. Hendren and A. Nicolau, Parallelizing Programs with Recursive Data Structures, InProc. of the Third ACM Int'l Conf. on Supercomputing, pp. 205–214 (1989).
J. C. Reynolds, Syntactic Control of Interference, InProc. of the Fifth Annual ACM Symp. on Principles of Programming Languages, pp. 39–46 (1978).
R. D. Tennent, Semantics of Interference Control,Theoretical Computer Science 27:297–310 (1983).
D. K. Gifford and J. M. Lucassen, Integrating Functional and Imperative Programming, InProc. of ACM Conference on Lisp and Functional Programming, pp. 28–38 (1986).
J. M. Lucassen,Types and Effects, PhD thesis, Massachusetts Institute of Technology (1987).
A. Neirynck,Static Analysis of Aliases and Side-Effects in Higher-Order Languages, PhD thesis, Cornell University (January 1988).
R. D. Tennent,Principles of Programming Languages, Prentice-Hall (1981).
M. J. C. Gordon,The Denotational Description of Programming Languages, Springer-Verlag (1979).
Author information
Authors and Affiliations
Additional information
Supported by National Science Foundation Grant DCR-8602072.
Rights and permissions
About this article
Cite this article
Neirynck, A., Panangaden, P. & Demers, A.J. Effect analysis in higher-order languages. Int J Parallel Prog 18, 1–36 (1989). https://doi.org/10.1007/BF01409744
Received:
Revised:
Issue Date:
DOI: https://doi.org/10.1007/BF01409744