## Higher-order Binding-time Analysis (1993)

Venue: | In ACM Symposium on Partial Evaluation and Semantics-Based Program Manipulation (PEPM'93 |

Citations: | 13 - 2 self |

### BibTeX

@INPROCEEDINGS{Davis93higher-orderbinding-time,

author = {Kei Davis},

title = {Higher-order Binding-time Analysis},

booktitle = {In ACM Symposium on Partial Evaluation and Semantics-Based Program Manipulation (PEPM'93},

year = {1993},

publisher = {Press}

}

### Years of Citing Articles

### OpenURL

### Abstract

The partial evaluation process requires a binding-time analysis. Binding-time analysis seeks to determine which parts of a program's result is determined when some part of the input is known. Domain projections provide a very general way to encode a description of which parts of a data structure are static (known), and which are dynamic (not static). For first-order functional languages Launchbury [Lau91a] has developed an abstract interpretation technique for bindingtime analysis in which the basic abstract value is a projection. Unfortunately this technique does not generalise easily to higher-order languages. This paper develops such a generalisation: a projection-based abstract interpretation suitable for higher-order binding-time analysis. Launchbury [Lau91b] has shown that binding-time analysis and strictness analysis are equivalent problems at first order, and for projection-based analyses have exactly the same safety condition. We argue that the same is true at higher order, ...

### Citations

467 | Comprehending monads
- Wadler
- 1990
(Show Context)
Citation Context ... gives oe:case (ae[[ b ]] oe) of in1 x ! lift (y:y) in2 x ! lift (y:oe:1) : (What we have described is a variant of the call-by-name translation of the monad of state readers into the lambda calculus =-=[Wad90]-=-; here global environments play the role of states.) 3.2 An informal explanation of the development This section is intended to give an intuitive feeling for the subsequent development by considering ... |

245 | The lazy lambda calculus
- Abramsky
- 1990
(Show Context)
Citation Context ...j U j denotes the domain of projections on domain U , is inappropriate; we require only a function from j E j to fID; BOTg. Further, since we will use the framework of Abramsky's lazy lambda calculus =-=[Abr89]-=- in which function types denote lifted function domains, and recognise that ID and BOT are precisely the projections guaranteed to be distinct on an arbitrary lifted domain D? , we only need (in a sen... |

101 | Projections for strictness analysis - Wadler, Hughes - 1987 |

70 |
Strictness analysis of higher-order functions
- Burn, Hankin, et al.
- 1986
(Show Context)
Citation Context ... development. ) Projection-based backward strictness analysis can detect such properties as head strictness, which is known [Kam92] to be undetectable in the BHA framework for abstract interpretation =-=[BHA86]-=-. Let a mappingsof projections to projections such that for all fl we have fl ffi f v f ffi ( fl) be called a backward projection abstraction of f . Here smallersare more informative. The higher-order... |

68 |
Binding time analysis for higher order untyped functional languages
- Consel
- 1990
(Show Context)
Citation Context ... Unlike our approach, the abstract values of higher-order functions are their projection abstractions, where projections on functions are operations that map (parts of) abstract closures to ?. Consel =-=[Con90]-=- describes a binding-time analysis for higherorder untyped languages. As in our analysis abstract values have two parts, the first describing the static/dynamic properties of values, and the second de... |

47 |
Projection Factorisations in Partial Evaluation
- Launchbury
- 1989
(Show Context)
Citation Context ...ojections provide a very general way to encode a description of which parts of a data structure are static (known), and which are dynamic (not static). For first-order functional languages Launchbury =-=[Lau91a]-=- has developed an abstract interpretation technique for bindingtime analysis in which the basic abstract value is a projection. Unfortunately this technique does not generalise easily to higher-order ... |

34 | Binding time analysis: A new PERspective
- Hunt, Sands
- 1991
(Show Context)
Citation Context ... reduce to theirs when restricted to first order (in fact, our strictness analysis is stronger, but it is essentially the same). Hunt [Hun91] presented a strictness analysis technique, and with Sands =-=[HS91]-=- a binding-time analysis technique, both using partial equivalence relations (PERs) as the basic abstract values. The relation between these two techniques is roughly analogous to the relation between... |

26 |
Strictness analysis and polymorphic invariance
- Abramsky
- 1985
(Show Context)
Citation Context ...rd strictness analysis [HL92], though the results are slightly weaker than for monomorphic analysis. For BHA-style strictness analysis, an approach to handling polymorphism has been given by Abramsky =-=[Abr85]-=-, though the results are rather weak. It might be possible to combine these approaches: since we only require projections on data we could use the corresponding polymorphic projections for the project... |

18 |
A strongly-typed self-applicable partial evaluator
- Launchbury
- 1991
(Show Context)
Citation Context ...their use for bindingtime analysis in partial evaluation. Launchbury [Lau91a] describes a forward technique which he implemented as part of the first self-applicable, strongly-typed partial evaluator =-=[Lau91c]-=-. Unfortunately, neither the forward nor backward techniques generalise easily to higher-order languages. A higher-order projection-based backward strictness analysis has been described [DW91]; this p... |

16 | PERs generalise projections for strictness analysis
- Hunt
- 1990
(Show Context)
Citation Context ... analysis and Wadler and Hughes' strictness analysis; our analyses reduce to theirs when restricted to first order (in fact, our strictness analysis is stronger, but it is essentially the same). Hunt =-=[Hun91]-=- presented a strictness analysis technique, and with Sands [HS91] a binding-time analysis technique, both using partial equivalence relations (PERs) as the basic abstract values. The relation between ... |

13 | Strictness analysis: Proved and improved - Davis, Wadler |

13 |
Frontiers and open sets in abstract interpretation
- Hunt
- 1989
(Show Context)
Citation Context ...is [BHA86], the time complexity (as a function of type structure) of an implementation is likely to be problematic, though promising advances are begin made in this area, most notably using frontiers =-=[Hun89]-=- and concrete data structures [Fer92] to represent abstract functions only at the values at which they are actually required. The next step would be to generalise to handle HindleyMilner polymorphism.... |

11 | Strictness analysis in 4D
- Davis, Wadler
- 1990
(Show Context)
Citation Context ...uator [Lau91c]. Unfortunately, neither the forward nor backward techniques generalise easily to higher-order languages. A higher-order projection-based backward strictness analysis has been described =-=[DW91]-=-; this paper develops a higherorder forward technique suitable for higher-order bindingComputing Science Department, University of Glasgow, Glasgow G12 8QQ, UK, kei@dcs.glasgow.ac.uk. time analysis, a... |

11 |
Head strictness is not monotonic abstract property
- Kamin
- 1992
(Show Context)
Citation Context ...? rather than f that is analysed, but this does not change the nature of the development. ) Projection-based backward strictness analysis can detect such properties as head strictness, which is known =-=[Kam92]-=- to be undetectable in the BHA framework for abstract interpretation [BHA86]. Let a mappingsof projections to projections such that for all fl we have fl ffi f v f ffi ( fl) be called a backward proje... |

6 | Projections for polymorphic first-order strictness analysis
- Hughes, Launchbury
- 1992
(Show Context)
Citation Context ...would be to generalise to handle HindleyMilner polymorphism. This has been done with good results at first order for binding-time analysis [Lau91a], and for the analogous backward strictness analysis =-=[HL92]-=-, though the results are slightly weaker than for monomorphic analysis. For BHA-style strictness analysis, an approach to handling polymorphism has been given by Abramsky [Abr85], though the results a... |

6 | Strictness and binding-time analyses: Two for the price of one - Launchbury - 1991 |

5 |
Binding-time analysis for polymorphically typed higher order languages
- Mogensen
- 1989
(Show Context)
Citation Context ...s, either from a theoretical or practical standpoint, but such a comparison should be possible since Hunt gave a precise relationship between the standard and abstract semantics (as we did). Mogensen =-=[Mog89]-=- describes his technique as a higherorder generalisation of Launchbury's polymorphic bindingtime analysis. Higher-order functions are represented by abstractsclosures---symbolic representations of fun... |

3 | A note on the choice of domains for projection-based program analysis
- Davis
- 1991
(Show Context)
Citation Context ...terpretation techniques in which the basic abstract value is a projection. Backward techniques [WH87, DW90] are useful for strictness analysis. Forward techniques can also give strictness information =-=[Dav92]-=-, but here we are interested in their use for bindingtime analysis in partial evaluation. Launchbury [Lau91a] describes a forward technique which he implemented as part of the first self-applicable, s... |

1 |
Concrete Data Structures
- Ferguson
- 1992
(Show Context)
Citation Context ... function of type structure) of an implementation is likely to be problematic, though promising advances are begin made in this area, most notably using frontiers [Hun89] and concrete data structures =-=[Fer92]-=- to represent abstract functions only at the values at which they are actually required. The next step would be to generalise to handle HindleyMilner polymorphism. This has been done with good results... |