Abstract / Description of output
Anumber of useful optimisations are enabled if wecan determine when a value is accessed at most once. We extend the Hindley-Milner type system with uses, yielding a typeinference based program analysis which determines when values are accessed at most once. Our analysis can handle higher-order functions and data structures, and admits principal types for terms. Unlike previous analyses, we prove our analysis sound with respect to call-by-need reduction. Call-by-name reduction does notprovide inaccurate model ofhowoften a value is used during lazy evaluation, since it duplicates work which would actually be shared in a real implementation. Ourtype system caneasily remodified toanalyse usage in a call-by-value language.
|Title of host publication
|FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
|Number of pages
|Published - 1995