Skip to main content
U.S. Department of Energy
Office of Scientific and Technical Information

Static analysis of aliases and side effects in higher-order languages

Thesis/Dissertation ·
OSTI ID:6438047

In recent years, there has been substantial interest in the development of programming languages for new parallel architectures. A basic design conflict arises because languages with simple semantics tend to use storage inefficiently, whereas languages allowing the programmer to access storage explicitly are difficult to analyze. A compile-time estimation scheme is presented for determining whether an expression in an imperative language either uses or updates the store. The aliasing behavior of expressions and, in general, whether the evaluation of two expressions interfere were also determined. Current interprocedural dataflow techniques for aliasing and side effect inference are valid for first-order languages. Inference schemes here provide information about aliasing and side effects in a higher-order expression language with call-by-value semantics. Abstract interpretation techniques allow us to define compositional static inference schemes for aliasing and side effects, which can be proved sound with respect to the standard semantics by structural induction. The abstract interpretation functions are easy to modify, in case a different type of information is requested.

Research Organization:
Cornell Univ., Ithaca, NY (USA)
OSTI ID:
6438047
Country of Publication:
United States
Language:
English