Effective Flow Analysis for Avoiding Run-Time Checks

This paper describes a general purpose program analysis that computes global control-flow and data-flow information for higher-order, call-by-value programs. This information can be used to drive global program optimizations such as inlining and run-time check elimination, as well as optimizations like constant folding and loop invariant code motion that are typically based on special-purpose local analyses.

[1]  Marc Feeley,et al.  Using Multilisp for solving constraint satisfaction problems: An application to nucleic acid 3D structure determination , 1994, LISP Symb. Comput..

[2]  Neil D. Jones,et al.  Flow analysis and optimization of LISP-like structures , 1979, POPL.

[3]  Peter Steenkiste,et al.  Tags and type checking in LISP: hardware and software approaches , 1987, ASPLOS 1987.

[4]  Nevin Heintze,et al.  Set-based analysis of ML programs , 1994, LFP '94.

[5]  Robin Milner,et al.  Definition of standard ML , 1990 .

[6]  Robin Milner,et al.  Principal type-schemes for functional programs , 1982, POPL '82.

[7]  Olin Shivers,et al.  Control-flow analysis of higher-order languages of taming lambda , 1991 .

[8]  Suresh Jagannathan,et al.  A unified treatment of flow analysis in higher-order languages , 1995, POPL '95.

[9]  Fritz Henglein,et al.  Global tagging optimization by type inference , 1992, LFP '92.

[10]  William Clinger Macros in Scheme , 1991, LIPO.

[11]  Robert Cartwright,et al.  A practical soft type system for scheme , 1997, TOPL.

[12]  R. Kent Dybvig,et al.  The Scheme Programming Language , 1995 .

[13]  Peter Lee,et al.  Topics in advanced language implementation , 1991 .

[14]  Jens Palsberg,et al.  A type system equivalent to flow analysis , 1995, TOPL.

[15]  Gordon D. Plotkin,et al.  Call-by-Name, Call-by-Value and the lambda-Calculus , 1975, Theor. Comput. Sci..

[16]  Christopher T. Haynes Infer: A Statically-typed Dialect of Scheme - Preliminary Tutorial and Documentation , 1993 .

[17]  Feng Zhao,et al.  An {\it bf O(N)} Algorithm for Three-Dimensional N-body Simulations , 1987 .

[18]  R. Hindley The Principal Type-Scheme of an Object in Combinatory Logic , 1969 .

[19]  Jens Palsberg,et al.  Flobal Program Analysis in Constraint Form , 1994, CAAP.

[20]  Alexander Aiken,et al.  Soft typing with conditional types , 1994, POPL '94.

[21]  Robin Milner,et al.  A Theory of Type Polymorphism in Programming , 1978, J. Comput. Syst. Sci..

[22]  Peter Steenkiste,et al.  Tags and type checking in LISP: hardware and software approaches , 1987, ASPLOS.

[23]  Harold T. Hodes,et al.  The | lambda-Calculus. , 1988 .

[24]  Olin Shivers,et al.  Data-flow analysis and type recovery in Scheme , 1990 .

[25]  L. Greengard The Rapid Evaluation of Potential Fields in Particle Systems , 1988 .

[26]  J. Van Leeuwen,et al.  Handbook of theoretical computer science - Part A: Algorithms and complexity; Part B: Formal models and semantics , 1990 .

[27]  Feng Zhao An O(N) Algorithm for Three-dimensional N-body Simulations , 2022 .

[28]  Jens Palsberg,et al.  Safety Analysis versus Type Inference , 1992, Inf. Comput..