## Binding Time Analysis: A New PERspective (1991)

Venue: | In Proceedings of the ACM Symposium on Partial Evaluation and Semantics-Based Program Manipulation (PEPM'91 |

Citations: | 34 - 6 self |

### BibTeX

@INPROCEEDINGS{Hunt91bindingtime,

author = {Sebastian Hunt and David Sands},

title = {Binding Time Analysis: A New PERspective},

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

year = {1991},

pages = {154--164},

publisher = {ACM Press}

}

### OpenURL

### Abstract

Given a description of the parameters in a program that will be known at partial evaluation time, a binding time analysis must determine which parts of the program are dependent solely on these known parts (and therefore also known at partial evaluation time). In this paper a binding time analysis for the simply typed lambda calculus is presented. The analysis takes the form of an abstract interpretation and uses a novel formalisation of the problem of binding time analysis, based on the use of partial equivalence relations. A simple proof of correctness is achieved by the use of logical relations. 1 Introduction Given a description of the parameters in a program that will be known at partial evaluation time, a binding time analysis must determine which parts of the program are dependent solely on these known parts (and therefore also known at partial evaluation time). A binding time analysis performed prior to the partial evaluation process can have several practical benefits (see [...

### Citations

148 | Semantic Domains - Gunter, Scott - 1990 |

122 |
An experiment in partial evaluation: The generation of a compiler generator
- Jones, Sestoft, et al.
- 1985
(Show Context)
Citation Context ...r to the partial evaluation process can have several practical benefits (see [Jon88]), and has been shown to be essential in some approaches to the generation of efficient compilers from interpreters =-=[JSS85]-=-. To appear: Symposium on Partial Evaluation and Semantics-Based Program Manipulation, June 17--19, 1991, Yale University, USA. y Partially supported by ESPRIT BRA 3074, Semagraph. z Partially support... |

117 |
editors. Abstract Interpretation of Declarative Languages. Computers and their Applications. Ellis Horwood
- Abramsky, Hankin
- 1987
(Show Context)
Citation Context ... 1 ! : : : D k ! E is the continuous map denoted by the expression e and P 1 ; : : : P k and Q are complete pers. We can provide such a test by the use of abstract interpretation over finite domains (=-=[AH87]-=-). First we present our functional language. 3 The Language We start with a definition of the syntax of types. Given a set of base types fA; B; : : :g we build type expressions, oe; ; : : : as follows... |

67 |
Binding time analysis for higher order untyped functional languages
- Consel
- 1990
(Show Context)
Citation Context ...analysis to define some form of program division (i.e. a sticky (global) analysis). Although it is possible to define a global analysis without first defining a local analysis (for a good example see =-=[Con90]-=-), potential advantages of formulating an independent local analysis are: ffl efficiency, since results from a local analysis are reusable in different programs containing common function definitions;... |

66 |
Backwards analysis of functional programs
- Hughes
- 1988
(Show Context)
Citation Context ...nt to the condition for binding time analysis. The fact that our analysis is a forwards analysis does not prevent us from using the results to infer "backwards" properties. Although it may b=-=e argued ([Hug87]-=-) that it is more efficient to answer this form of question using a backwards analysis, in the case of a higher-order language (as given here) forwards analysis can capture the crucial interdependency... |

62 | A per model of polymorphism and recursive types
- Abadi, Plotkin
- 1990
(Show Context)
Citation Context ...lation on domains P ` D \Theta E , is strict iff ? P ?, and is inductive iff whenever fx i g i2! ` D and fy i g i2! ` E are chains such that 8i 2 !: x i P y i , then G i2! x i P G i2! y i : Following =-=[AP90]-=-, we use the term complete per to describe pers which are both strict and inductive. We denote the class of complete pers on D by cper(D). For any domain D, cper(D) is closed under intersection and th... |

53 |
Abstract interpretation, logical relations and Kan extensions
- Abramsky
- 1990
(Show Context)
Citation Context ...ct a binding time analysis, in the form of an abstract interpretation, which extends smoothly to higher-order functions using the essence of the logical relations approach to correctness developed in =-=[Abr90]-=-. 1.1 Overview The remainder of this paper is organised as follows. In section 2 we motivate the use of partial equivalence relations to specify the staticness of structured data, and introduce some o... |

48 |
Automatic program specialization: a re-examination from basic principles
- Jones
- 1988
(Show Context)
Citation Context ...t solely on these known parts (and therefore also known at partial evaluation time). A binding time analysis performed prior to the partial evaluation process can have several practical benefits (see =-=[Jon88]-=-), and has been shown to be essential in some approaches to the generation of efficient compilers from interpreters [JSS85]. To appear: Symposium on Partial Evaluation and Semantics-Based Program Mani... |

47 |
Projection Factorisation in Partial Evaluation
- Launchbury
- 1990
(Show Context)
Citation Context ... pure lisp to consider partially static structures. Launchbury [Lau88] introduced the use of domain projections to describe binding times in a first-order typed functional language, and in his thesis =-=[Lau89]-=- presented the details of a binding time analysis based on this approach. Our work is intimately connected with Launchbury's, and we will expose this relation in some detail. 8.1 Comparing Projection ... |

45 |
Compile-time garbage collection by sharing analysis
- Jones, Metayer
- 1989
(Show Context)
Citation Context ...analyses have previously been used. Examples include identifying conditions for certain program transformation (e.g., [NN89], [Chi90]), in compile-time garbage collection (e.g., necessity analysis in =-=[JM89]-=-), and in the compositional time analysis of lazy higher-order functions [San90]. 9 Conclusions We have presented a local binding time analysis which allows us to describe which parts of data structur... |

45 |
Partially static structures in a self-applicable partial evaluator
- Mogensen
- 1987
(Show Context)
Citation Context ...h higher-order functions. For structured data it is useful to have more refined notions of binding times than just static and dynamic; we would like to be able to model varioussdegrees of staticness (=-=[Mog88]-=-), such as lists with static structure and dynamic elements. It is possible to achieve this with equivalence relations as well. For example, let L be the domain of finite, partial and infinite lists o... |

40 |
Two-level semantics and abstract interpretation
- Nielson
- 1989
(Show Context)
Citation Context ...nitely not used. Traditionally, a computable test for this property is implemented as a backwards analysis, where information about liveness of a program is propagated backwards to variables. Nielson =-=[Nie90]-=- gives a simple functional version of a liveness analysis, presented as a backwards abstract interpretation. For the functionsK given in section 2, the abstract backwards version bK # of Nielson's ana... |

34 |
Automatic Methods for Program Transformation
- Chin
- 1990
(Show Context)
Citation Context ...test, there are several potential applications where first-order liveness analyses have previously been used. Examples include identifying conditions for certain program transformation (e.g., [NN89], =-=[Chi90]-=-), in compile-time garbage collection (e.g., necessity analysis in [JM89]), and in the compositional time analysis of lazy higher-order functions [San90]. 9 Conclusions We have presented a local bindi... |

32 |
Calculi for Time Analysis of Functional Programs
- Sands
- 1990
(Show Context)
Citation Context ... certain program transformation (e.g., [NN89], [Chi90]), in compile-time garbage collection (e.g., necessity analysis in [JM89]), and in the compositional time analysis of lazy higher-order functions =-=[San90]-=-. 9 Conclusions We have presented a local binding time analysis which allows us to describe which parts of data structures are static, and also allows us to analyse higher-order functions, thus overco... |

29 |
Automatic binding time analysis for a typed l calculus
- Nielson, Nielson
- 1988
(Show Context)
Citation Context ...ram is completely static, since map # snd # spine((d; s)) = spine(snd # (d; s)) = spine(s): 8 Related Work Early work on binding time analysis in the MIX project [JSS85, Ses86], and in the TML system =-=[NN88]-=- was only able to classify a variable as either completely static or completely dynamic. Mogensen [Mog88] recognised the importance of being able to make finer distinctions for structured data, and ex... |

27 | The structure of a self-applicable partial evaluator - Sestoft |

19 |
Binding Time Analysis for Polymorphically Typed Higher Order Languages
- Mogensen
- 1989
(Show Context)
Citation Context ...e instances of a polymorphic function. A promising approach to extending the theory of abstract interpretation of the simply typed lambda calculus to cope with polymorphism is presented in [AJ91]. In =-=[Mog89]-=-, Launchbury's projection based method has been extended to a higher-order language in a way which is rather different from the method we have presented. The approach of [Mog89] is based on a global p... |

17 | A relational approach to strictness analysis of higher order polymorphic functions
- Abramsky, Jensen
- 1991
(Show Context)
Citation Context ...s across the instances of a polymorphic function. A promising approach to extending the theory of abstract interpretation of the simply typed lambda calculus to cope with polymorphism is presented in =-=[AJ91]-=-. In [Mog89], Launchbury's projection based method has been extended to a higher-order language in a way which is rather different from the method we have presented. The approach of [Mog89] is based o... |

16 |
PERs generalise projections for strictness analysis
- Hunt
- 1990
(Show Context)
Citation Context ... have been used to construct models of the polymorphic lambda calculus (see, for example, [Asp90, AP90]). As far as we are aware, the first use of pers in static program analysis is that presented in =-=[Hun90]-=-. For the rest of the paper, we will restrict our attention to Scott domains and continuous maps between them ([SG9 ]). For each pair of domains D and E , we will write the domain of continuous functi... |

15 |
Projections for specialisation
- Launchbury
- 1987
(Show Context)
Citation Context ...portance of being able to make finer distinctions for structured data, and extended the binding time analysis of a first-order dialect of pure lisp to consider partially static structures. Launchbury =-=[Lau88]-=- introduced the use of domain projections to describe binding times in a first-order typed functional language, and in his thesis [Lau89] presented the details of a binding time analysis based on this... |

9 | Categorical Topics in Computer Science - Asperti - 1990 |

2 |
Transformations on higher-order functions
- Nielson, Nielson
- 1989
(Show Context)
Citation Context ...iveness test, there are several potential applications where first-order liveness analyses have previously been used. Examples include identifying conditions for certain program transformation (e.g., =-=[NN89]-=-, [Chi90]), in compile-time garbage collection (e.g., necessity analysis in [JM89]), and in the compositional time analysis of lazy higher-order functions [San90]. 9 Conclusions We have presented a lo... |