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
|
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
|