Abstract
First-order projection-based binding-time analysis has proven genuinely useful in partial evaluation [18]. There have been three notable generalisations of projection-based analysis to higher order. The first lacked a formal basis [19]; the second used structures strictly more general than projections, namelypartial equivalence relations (PERs) [14]; the third involved a complex construction that gave rise to impractically large abstract domains [7]. This paper presents a technique free of these shortcomings: it is simple, entirely projection-based, satisfies a formal correctness condition, and gives rise to reasonably small abstract domains. Though the technique is cast in terms of projections, there is also an interpretation in terms of PERs. The principal limitation of the technique is the restriction tomonomorphic typing.
Similar content being viewed by others
References
S. Abramsky. The lazy lambda calculus. In D. Turner, editor,Research Topics in Functional Programming. Addison-Wesley, 1989.
S. Abramsky. Abstract interpretation, logical relations and Kan extensions.Journal of Logic and Computation, 1, 1990.
G. Baraki. A note on abstract interpretation of polymorphic functions. In [12], pages 367–378.
G. Baraki.Abstract Interpretation of Polymorphic Higher-Order Functions. Ph.D. thesis, Research report FP-1993-7, Department of Computing Science, University of Glasgow, 1993.
D. Bjørner, A.P. Ershov, and N.D. Jones, editors,Partial Evaluation and Mixed Computation, Proceedings IFIP TC2 Workshop. North-Holland, 1988.
C. Consel. Binding time analysis for higher order untyped functional languages.1990 ACM Conference on LISP and Functional Programming, pages 264–272. ACM Press, 1990.
K. Davis. Higher-order binding-time analysis.ACM Symposium on Partial Evaluation and Semantics-Based Program Manipulation (PEPM'93), pages 78–87. ACM Press, 1993.
K. Davis.Projection-Based Program Analysis. Ph.D. thesis, Computing Science Department, University of Glasgow, 1994.
C.K. Gomard. A self-applicable partial evaluator for the lambda calculus: Correctness and pragmatics. ACM Transactions on Programming Languages and Systems, 14(2):147–172, 1992.
F. Henglein and C. Mossin. Polymorphic binding-time analysis. In D. Sannella, editor,Programming Languages and Systems — ESOP'94. 5th European Symposium on Programming. LNCS 788, pages 287–301. Springer-Verlag, 1994.
J. Hughes. Backwards analysis of functional programs. In [5], pages 187–208.
J. Hughes, editor,Proceedings of the 1991 Conference on Functional Programming Languages and Computer Architecture (FPCA '91), LNCS 523. Springer-Verlag, 1991.
S. Hunt. PERs generalise projections for strictness analysis (extended abstract). In S.L. Peyton Joneset al., editors,Proceedings of the 1990 Glasgow Workshop on Functional Programming. Springer-Verlag, 1991.
S. Hunt and D. Sands. Binding time analysis: A new PERspective.ACM Symposium on Partial Evaluation and Semantics-Based Program Manipulation (PEPM'91), SIGPLAN Notices 26(9):154–165, 1991.
T. Jensen.Abstract Interpretation in Logical Form. Ph.D. thesis, Report 93/11, Department of Computer Science, University of Copenhagen, 1992.
N.D. Jones. Automatic program specialization: A re-examination from basic principles. In [5], pages 225–282.
J. Launchbury. Projections for specialisation. In [5], pages 299–315.
J. Launchbury.Projection Factorisations in Partial Evaluation. Ph.D. Thesis, Glasgow University, 1989. Distinguished Dissertations in Computer Science, vol. 1, Cambridge University Press, 1991.
T. Mogensen. Binding-time analysis for polymorphically typed higher order languages. In J. Diaz and F. Orejas, editors,International Joint Conference on Theory and Practice of Software Development, LNCS 352, pages 298–312. Springer-Verlag, 1989.
H.R. Nielson and F. Nielson. Automatic binding-time analysis for a typed λ-calculus.Science of Computer Programming 10:139–176.
D.A. Schmidt. Static properties of partial reduction. In [5], pages 465–483.
J. Seward. Polymorphic strictness analysis using frontiers.ACM Symposium on Partial Evaluation and Semantics-Based Program Manipulation (PEPM '93), pages 139–176. ACM Press, 1993.
P. Wadler. Strictness analysis on non-flat domains by abstract interpretation over finite domains. In S. Abramsky and C. Hankin, editors,Abstract Interpretation of Declarative Languages, pages 266–275. Ellis Horwood, 1987.
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Davis, K. PERs from projections for binding-time analysis. Lisp and Symbolic Computation 8, 249–266 (1995). https://doi.org/10.1007/BF01019006
Issue Date:
DOI: https://doi.org/10.1007/BF01019006