MetaCartSign in to MyCiteSeer

Include Citations | Advanced Search | Help

Include Citations | Advanced Search | Help

  Higher-order value flow graphs (1997) [3 citations — 0 self]

Download:
Download as a PDF | Download as a PS
by Christian Mossin
In Proceedings of 9th International Symposium on Programming Languages, Implementation, Logics, and Programming (PLILP'97
http://www.diku.dk/research-groups/topps/personal/mossin/flowgraph.ps.gz
Add To MetaCart

Abstract:

Abstract. The concepts of value- and control-flow graphs are important for program analysis of imperative programs. An imperative value flow graph can be constructed by a single pass over the program text. No similar concepts exist for higher-order languages: we propose a method for constructing value flow graphs for typed higher-order functional languages. A higher-order value flow graph is constructed by a single pass over an explicitly typed program. By using standard methods, single source and single use value flow problems can be answered in linear time and all sources-all uses can be answered in quadratic time (in the size of the flow graph, which is equivalent to the size of the explicitly typed program). On simply typed programs, the precision of the resulting analysis is equivalent to closure analysis [10,11,8]. In practice, it is a reasonable assumption that typed programs are only bigger than their untyped equivalent by a constant factor, hence this is an asymptotic improvement over previous algorithms. We extend the analysis to handle polymorphism, sum types and recursive types. As a consequence, the analysis can handle (explicit) dynamically typed programs. The analysis is polyvariant for polymorphic definitions.

Citations

234 Precise interprocedural dataflow analysis via graph reachability – Reps, Sagiv, et al. - 1995
216 Theorems for Free – Wadler - 1989
74 Replacing function parameters by global variables. M.Phil – Sestoft - 1988
49 Control-flow analysis and type systems – Heintze - 1995
46 Analysis and Efficient Implementation of Functional Programs – Sestoft - 1991
34 Flow Analysis of Typed Higher-Order Programs – Mossin - 1996
32 Dynamic typing: Syntax and proof theory – Henglein - 1994
11 Global Program Analysis in Constraint Form – Palsberg - 1994
9 Paths, computations and labels in the -calculus – Asperti, Laneve - 1993
3 Efficient closure analysis with reachability – Ayers - 1992
1 Control-flow analysis for ML in linear time – Heintze, McAllester - 1997