MetaCartSign in to MyCiteSeer

Include Citations | Advanced Search | Help

Include Citations | Advanced Search | Help

  Efficient Type Inference for Higher-Order Binding-Time Analysis (1991) [85 citations — 1 self]

Download:
pdf | ps
by Fritz Henglein
In Functional Programming and Computer Architecture
ftp://ftp.diku.dk/diku/semantics/papers/D-88.ps.Z
Add To MetaCart

Abstract:

Binding-time analysis determines when variables and expressions in a program can be bound to their values, distinguishing between early (compile-time) and late (run-time) binding. Binding-time information can be used by compilers to produce more efficient target programs by partially evaluating programs at compile-time. Binding-time analysis has been formulated in abstract interpretation contexts and more recently in a type-theoretic setting. In a type-theoretic setting binding-time analysis is a type inference problem: the problem of inferring a completion of a-term e with binding-time annotations such that e satisfies the typing rules. Nielson and Nielson and Schmidt have shown that every simply typed-term has a unique completion e that minimizes late binding in TML, a monomorphic type system with explicit binding-time annotations, and they present exponential time algorithms for computing such minimal completions. 1 Gomard proves the same results for a variant of his two-level-calculus without a so-called "lifting " rule. He presents another algorithm for inferring completions in this somewhat restricted type system and states that it can be

Citations

2005 The Design and Analysis of Computer Algorithms – Aho, Hopcroft, et al. - 1974
640 Depth-First Search and Linear Graph Algorithms – Tarjan - 1972
284 An efficient unification algorithm – Martelli, Montanari - 1982
213 Unification revisited – Lassez, Maher, et al. - 2003
116 Linear unification – Paterson, Wegman - 1978
111 Mix: a self-applicable partial evaluator for experiments in compiler generation – Jones, Sestoft, et al. - 1989
106 An experiment in partial evaluation: the generation of a compiler generator – Jones, Sestoft, et al. - 1989
101 A partial evaluator for untyped lambda calculus – Gomard, Jones - 1991
86 Automatic autoprojection of higher order recursive equations – Bondorf - 1990
83 Type inference with subtypes – FUH, MISHRA - 1990
72 A simple algorithm and proof for type inference – Wand - 1987
68 Binding Time Analysis for Higher Order Untyped Functional Languages – Consel - 1990
67 Coercion and type inference – Mitchell - 1984
50 Self-Applicable Partial Evaluation – Bondorf - 1990
46 Partially static structures in a self-applicable partial evaluator – Mogensen - 1988
45 Partial type inference for untyped functional programs (extended abstract – Gomard - 1990
45 Projection Factorisations in Partial Evaluation – Launchbury - 1989
44 Automatic program specialization: A re-examination from basic principles – Jones
34 New insights into partial evaluation: the Schism experiment – Consel - 1988
30 Binding Time Analysis: A New PERspective – Hunt, Sands - 1991
27 Type inference with subtypes – Stansifer - 1988
26 Two-level semantics and code generation – Nielson, Nielson - 1988
21 Résolution d’équations dans des langages d’ordre 1, 2,...,ω – Huet - 1976
20 Binding Time Analysis for Polymorphically Typed Higher Order Languages – Mogensen - 1989
18 Type inference and semi-unification – Henglein - 1988
17 A compiler generator produced by a self-applicable specializer can have a surprisingly natural and understandable structure – Romanenko - 1988
15 Data Structures and Network Flow Algorithms, volume CMBS – Tarjan - 1983
14 Projections for specialisation – Launchbury - 1988
11 Higher order partial evaluation -- HOPE for the lambda calculus – Gomard - 1989
11 Compiler generation from denotational semantics – Jones, Schmidt - 1980
9 An Algorithm for Testing the Equivalence of Finite Automata – Hopcroft, Karp - 1971
9 Binding time optimization in programming languages: Some thoughts toward the design of an ideal language – Jones, Muchnick - 1976
8 Static properties of partial evaluation – Schmidt - 1988
6 Semantics directed compiling for functional languages – Nielson, Nielson - 1986
4 Reprinted with corrections – Aho, Sethi, et al. - 1986
4 Simple Type Inference and Unification – Henglein - 1988
4 TEMPO: A Unified Treatment of Binding Time and Parameter Passing Concepts – Jones, Steven - 1978
4 Automatic binding time analysis for a typed lambda-calculus – Nielson, Nielson - 1988
1 Binding time analysis and the taming of self-application. To appear – Bondorf, Jones, et al. - 1988
1 Dynamic typing. Semantique Note 90 – Henglein - 1991
1 Static-Scope-Lisp: Splitting an interpreter into compiler and run-time system – Kroeger - 1981
1 The structure of a self-applicable partial partial evaluator – Sestoft - 1985