Hostname: page-component-7479d7b7d-qlrfm Total loading time: 0 Render date: 2024-07-13T19:48:09.131Z Has data issue: false hasContentIssue false

Representing demand by partial projections

Published online by Cambridge University Press:  07 November 2008

John Launchbury
Affiliation:
Oregon Graduate Institute, and Glasgow University (e-mail: jl@cse.ogi.edu)
Gebreselassie Baraki
Affiliation:
Oregon Graduate Institute, and Glasgow University (e-mail: jl@cse.ogi.edu)
Rights & Permissions [Opens in a new window]

Abstract

Core share and HTML view are not available for this content. However, as you have access to this content, a full PDF is available via the ‘Save PDF’ action button.

The projection-based strictness analysis of Wadler and Hughes is elegant and theoretically satisfying except in one respect: the need for lifting. The domains and functions over which the analysis is performed need to be transformed, leading to a less direct correspondence between analysis and program than might be hoped for. In this paper we shall see that the projection analysis may be reformulated in terms of partial projections, so removing this infelicity. There are additional benefits of the formulation: the two forms of information captured by the projection are distinguished, and the operational significance of the range of the projection fits exactly with the theory of unboxed types.

Type
Articles
Copyright
Copyright © Cambridge University Press 1996

References

Abramsky, S. (1990) The Lazy Lambda Calculus, in Turner, D. editor, Declarative Programming. Reading, MA: Addison-Wesley.Google Scholar
Burn, G. L., Hankin, C. L. and Abramsky, S. (1986) Strictness Analysis for Higher-Order Functions, Science of Computer Programming, 7.CrossRefGoogle Scholar
Burn, G. L. (1990) A relationship between abstract interpretation and projection analysis, in Proc. ACM Symposium on Principles of Programming Languages (POPL '90). New York: ACM Press.Google Scholar
Davis, K. (1993) Higher-order binding-time analysis, in Proc. ACM Symposium on Partial Evaluation and Semantics-Based Program Manipulation (PEPM '93), New York: ACM Press.Google Scholar
Davis, K. (1994) Projection-based program analysis, PhD thesis, Glasgow University, UK.CrossRefGoogle Scholar
Hughes, R. J. M. (1985) Strictness detection in non-flat domains, in Ganzinger, H. and Jones, N., editors, Proc. Workshop on Programs as Data Objects: LNCS 217, Copenhagen, Denmark. Berlin: Springer-Verlag.Google Scholar
Hughes, R. J. M. (1988) Backwards analysis of functional programs, in Ershov, Bjørner and Jones, , editors, Partial Evaluation and Mixed Computation: Proc. IFIP TC2 Workshop, Denmark. Amsterdam: North-Holland.Google Scholar
Hughes, R. J. M. and Launchbury, J. (1991) Towards relating forwards and backwards analyses, in Peyton Jones, S. L. et al. , editors, Functional Programming: Proc. Glasgow Workshop on Functional Programming, pp. 1315, Ullapool, Scotland. Berlin: Springer-Verlag.Google Scholar
Hughes, R. J. M. and Launchbury, J. (1992) Projections for polymorphic first-order strictness analysis. Math. Struct. in Comp. Science, Vol. 2. Cambridge: CUP.Google Scholar
Hunt, S. and Sands, D. (1991) Binding time analysis: a new PERspective, in Proc. ACM Symposium on Partial Evaluation and Semantics-Based Program Manipulation (PEPM '91). ACM SIGPLAN Notices, 26(9).CrossRefGoogle Scholar
Hunt, S. (1991) Abstract interpretation of functional languages: from theory to practice. PhD thesis, Imperial College, London, UK.Google Scholar
Jones, N. D. and Mycroft, A. (1986) Data flow analysis of applicative programs using minimal function graphs, in Proc. 13th ACM Symposium on Principles of Programming Languages, pp. 296306, St. Petersburg,FL.CrossRefGoogle Scholar
Johnsson, T. (1981) Detecting when call-by-value can be used instead of call- by-need. Prgramming Methodology Group Memo PMG-14, Institutionen för Informationsbehandling, Chalmers Tekniska Högskola, Göteborg, Sweden.Google Scholar
Kubiak, R., Hughes, R. J. M. and Launchbury, J. (1992) Implementing Projection-based Strictness Analysis. Department of Computing Science, University of Glasgow.Google Scholar
Launchbury, J. (1987) Projections for specialisation, in Ershov, Bjørner and Jones, , editors, Partial Evaluation and Mixed Computation: Proc. IFIP TC2 Workshop, Denmark. Amsterdam: North-Holland.Google Scholar
Launchbury, J. (1991a) Projection factorisations in partial evaluation. PhD thesis, Glasgow University. (Distinguished Dissertations in Computer Science, Vol 1, Cambridge: CUP.)Google Scholar
Launchbury, J. (1991b) Strictness and Binding-time analyses: Two for the price of one, in Proc. ACM Conference on Programming Language Design and Implementation.New York:ACM Press.CrossRefGoogle Scholar
Ong, C.-H. L. (1988) The lazy lambda calculus: an investigation in the foundations of functional programming PhD Thesis, Imperial College, London, UK.Google Scholar
Plotkin, G. D. (1985) Lecture Notes.Google Scholar
Peyton Jones, S.-L. and Launchbury, J. (1991) Unboxed Values as First Class Citizens in a Non-strict Functional Language. Department of Computing Science, University of Glasgow.Google Scholar
Schmidt, D. A. (1986) Denotational Semantics. MA: Allyn and Bacon.Google Scholar
Wadler, P. and Hughes, R. J. M. (1987) Projections for strictness analysis, in Functional Programming and Computer Architecture: LNCS 274, Portland, OR. Berlin: Springer-Verlag.Google Scholar
Wray, S. (1985) A new strictness detection algorithm, in Proc. Workshop on Implementation of Functional Languages, Aspenäs, Sweden.Google Scholar
Submit a response

Discussions

No Discussions have been published for this article.