A note on abstract interpretation of polymorphic functions
Strictness analysis of monomorphic functional programs by abstract interpretation has been extensively studied. Abramsky's work describes the extension to polymorphic functions. However, if different instances of a polymorphic function are used in a program, we have to re-analyse to compute abstract functions at each instance used. In the first-order case, Hughes showed how to compute the needed abstract functions without re-analysis. In this paper we develop a method of computing safe approximations to abstract functions of higher-order functions. The approximations are computed from abstract functions of simple instances of polymorphic functions. In the first-order case, the method gives exact values.
Unable to display preview. Download preview PDF.
- [Abramsky 85]S. Abramsky. Strictness Analysis and Polymorphic Invariance. In Programs as Data Objects, LNCS 217, 1985.Google Scholar
- [AH 87]S. Abramsky and C.L. Hankin (eds). Abstract Interpretation of Declarative Languages. Ellis-Horwood, 1987.Google Scholar
- [Abramsky 88]S. Abramsky. Notes on Strictness Analysis for Polymorphic Functions. Draft paper, 1988.Google Scholar
- [BHA 86]G.L. Burn, C.L. Hankin and S. Abramsky. Strictness Analysis for Higher-Order Functions. Science of Computer Programming, 7, 1986.Google Scholar
- [Hughes 88]R.J.M. Hughes. Abstract Interpretation of First-Order Polymorphic Functions. Proceedings of the 1988 Glasgow Workshop on Functional Programming, Research Report 89/R4, University of Glasgow, 1989.Google Scholar
- [Mycroft 81]A. Mycroft. Abstract Interpretation and Optimising Transformations for Applicative Programs. Ph.D. Thesis, University of Edinburgh, 1981.Google Scholar
- [Scott 76]D. Scott. Data Types as Lattices. SIAM Journal of Computing, Vol 5, No. 3, 1976.Google Scholar
- [Wadler 87]P. Wadler. Strictness Analysis on Non-Flat Domains by Abstract Interpretation. In [AH 87].Google Scholar