Projections for Polymorphic First-Order Strictness Analysis (1991)
| Venue: | Math. Struct. in Comp. Science |
| Citations: | 6 - 1 self |
BibTeX
@ARTICLE{Hughes91projectionsfor,
author = {John Hughes and John Launchbury},
title = {Projections for Polymorphic First-Order Strictness Analysis},
journal = {Math. Struct. in Comp. Science},
year = {1991},
volume = {2},
pages = {301--326}
}
OpenURL
Abstract
this paper, that results from this kind of analysis are, in a sense, polymorphic. This confirms an earlier conjecture [19], and shows how the technique can be applied to first-order polymorphic functions. The paper is organised as follows. In the next section, we review projection-based strictness analysis very briefly. In Section 3 we introduce the types we will be working with: they are the objects of a category. We show that parameterised types are functors, with certain cancellation properties. In Section 4 we define strong and weak polymorphism: polymorphic functions in programming languages are strongly polymorphic, but we will need to use projections with a slightly weaker property. We prove that, under certain conditions, weakly polymorphic functions are characterised by any non-trivial instance. We can therefore analyse one monomorphic instance of a polymorphic function using existing techniques, and apply the results to every instance. In Section 5 we choose a finite set of projections for each type, suitable for use in a practical compiler. We call these specially chosen projections contexts, and we show examples of factorising contexts for compound types in order to facilitate application of the results of Section 4. We give a number of examples of polymorphic strictness analysis. Finally, in Section 6 we discuss related work and draw some conclusions. 2. Projections for Strictness Analysis







