|
ABSTRACT
This paper shows how to implement sensible polymorphic strictness analysis using the Frontiers algorithm. A central notion is to only ever analyse each function once, at its simplest polymorphic instance. Subsequent non-base uses of functions are dealt with by generalising their simplest instance analyses. This generalisation is done using an algorithm developed by Baraki, based on embedding-closure pairs. Compared with an alternative approach of expanding the program out into a collection of monomorphic instances, this technique is hundreds of times faster for realistic programs. There are some approximations involved, but these do not seem to have a detrimental effect on the overall result. The overall effect of this technology is to considerably expand the range of programs for which the Frontiers algorithm gives useful results reasonably quickly.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
Abr85
|
|
 |
AJ91
|
|
| |
Bar91
|
|
| |
BHA85
|
|
| |
Bur87
|
G.L. Burn. Abstract Interpretation and the Parallel Evaluation of Functional Languages. PhD thesis, Imperial College, University of London, March 1987.
|
| |
CP85
|
|
| |
HH91
|
Sebastian Hunt and Chris Hankin. Fixed points and frontiers: a new perspective. Journal of Functional Programming, 1(1):91- 120, January 1991.
|
| |
HH92
|
|
| |
Hun91
|
Sebastian Hunt. Abstract Interpretation o} Functional Languages: From Theory to Practice. PhD thesis, imperial College, University of London, 1991.
|
| |
HWe90
|
P. Hudak and P. Wadler (editors). Report on the programming language Haskell, a non-strict purely functional language (Version 1.0). Technical Report YALEU/DCS/RR777, Yale University, Department of Computer Science, April 1990.
|
| |
KHL91
|
|
| |
Mil78
|
R. Mflner. A theory of type polymorphism in programming. Journal of Computer and System Science, 17(3):348-375, 1978.
|
| |
PL92
|
|
| |
Sew91
|
Julian Seward. Towards a strictness analyser for haskell: Putting theory into practice. Master's thesis, University of Manchester, Department of Computer Science, 1991. Available as University of Manchester Technical Report UMCS-92-2-2.
|
| |
Wad87
|
P.L. Wadler. Strictness analysis on non-fiat domains (by abstract interpretation over finite domains). In S. Abramsky and C.L. Hankjn, editors, Abstract Interpretation of Declarative Languages, chapter 12, pages 266-275. Ellis Horwood Ltd., Chichester, West Sussex, England, 1987.
|
|