Abstract
In this paper we address the technical foundations essential to the aim of providing a semantic basis for the formal treatment of relative efficiency in functional languages. For a general class of “functional” computation systems, we define a family of improvement preorderings which express, in a variety of ways, when one expression is more efficient than another. The main results of this paper build on Howe’s study of equality in lazy computation systems, and are concerned with the question of when a given improvement relation is subject to the usual forms of (in)equational reasoning (so that, for example, we can improve an expression by improving any sub-expression). For a general class of computation systems we establish conditions on the operators of the language which guarantee that an improvement relation is a precongruence. In addition, for a particular higher-order nonstrict functional language, we show that any improvement relation which satisfies a simple monotonicity condition with respect to the rules of the operational semantics has the desired congruence property.
This work was partially funded by ESPRIT BRA 3124, Semantique.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
Bibliography
S. Abramsky. The lazy lambda calculus. In D. Turner, editor, Research Topics in Functional Programming. Addison Wesley, 1990.
S. Arun-Kumar and M. Hennessy. An efficiency preorder for processes. In TACS. LNCS 526, 1991.
E. Astesiano, A. Giovini, and G. Reggio. Generalized bisimulation in relational specifications. In STACS. LNCS 294, 1988.
D. Gurr. Semantic Frameworks for Complexity. PhD thesis, Department of Computer Science, Edinburgh, 1991. (Available as reports CST-72-91 and ECS-LFCS-91-130).
D. J. Howe. Equality in lazy computation systems. In Fourth annual symposium on Logic In Computer Science. IEEE, 1989.
D. J. Howe. On computational open-endedness in Martin-Löf’s type theory. In Sixth annual symposium on Logic In Computer Science, 1991.
J.W. Klop. Combinatory Reduction Systems, volume 127 of Mathematical Centre Tracts. Mathematischen Centrum, 413 Kruislaan, Amsterdam, 1980.
R. Milner. Calculi for synchrony and asynchrony. Theoretical Computer Science, 25: 267–310, 1983.
R. Milner and M. Tofte. Co-induction in relational semantics. Theoretical Computer Science, 1990. (to appear).
E. Moggi. Computational lamb da-calculus and monads. In Fourth annual symposium on Logic in Computer Science, 1989.
C.-H. Luke Ong. The Lazy Lambda Calculus: An Investigation into the Foundations of Functional Programming. PhD thesis, Imperial College, University of London, 1988.
D. Park. Concurrency and automata on infinite sequences. In 5th GI conference on Theoretical Computer Science. LNCS 104, Springer Verlag, 1980.
D. Sands. Calculi for Time Analysis of Functional Programs. PhD thesis, Imperial College, September 1990.
D. Sands. Complexity analysis for a lazy higher-order language. In Proceedings of the Third European Symposium on Programming, number 432 in LNCS. Springer-Verlag, May 1990.
D. Sands. Time analysis, cost equivalence and program refinement. In Proceedings of the Eleventh Conference on Foundations of Software Technology and Theoretical Computer Science. Springer, December 1991.
C. L. Talcott. The Essence of Rum, A Theory of the intensional and extensional aspects of Lisp-type computation. PhD thesis, Stanford University, August 1985.
B. Thomsen. An extended bisimulation induced by a prorder on actions. Master’s thesis, Aalborg University, Institute of Electronic Systems, 1987.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1992 British Computer Society
About this paper
Cite this paper
Sands, D. (1992). Operational Theories of Improvement in Functional Languages. In: Heldal, R., Holst, C.K., Wadler, P. (eds) Functional Programming, Glasgow 1991. Workshops in Computing. Springer, London. https://doi.org/10.1007/978-1-4471-3196-0_24
Download citation
DOI: https://doi.org/10.1007/978-1-4471-3196-0_24
Publisher Name: Springer, London
Print ISBN: 978-3-540-19760-7
Online ISBN: 978-1-4471-3196-0
eBook Packages: Springer Book Archive