Skip to main content

Operational Theories of Improvement in Functional Languages

Extended Abstract

  • Conference paper

Part of the book series: Workshops in Computing ((WORKSHOPS COMP.))

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

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Bibliography

  1. S. Abramsky. The lazy lambda calculus. In D. Turner, editor, Research Topics in Functional Programming. Addison Wesley, 1990.

    Google Scholar 

  2. S. Arun-Kumar and M. Hennessy. An efficiency preorder for processes. In TACS. LNCS 526, 1991.

    Google Scholar 

  3. E. Astesiano, A. Giovini, and G. Reggio. Generalized bisimulation in relational specifications. In STACS. LNCS 294, 1988.

    Google Scholar 

  4. 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).

    Google Scholar 

  5. D. J. Howe. Equality in lazy computation systems. In Fourth annual symposium on Logic In Computer Science. IEEE, 1989.

    Google Scholar 

  6. D. J. Howe. On computational open-endedness in Martin-Löf’s type theory. In Sixth annual symposium on Logic In Computer Science, 1991.

    Google Scholar 

  7. J.W. Klop. Combinatory Reduction Systems, volume 127 of Mathematical Centre Tracts. Mathematischen Centrum, 413 Kruislaan, Amsterdam, 1980.

    Google Scholar 

  8. R. Milner. Calculi for synchrony and asynchrony. Theoretical Computer Science, 25: 267–310, 1983.

    Article  MATH  MathSciNet  Google Scholar 

  9. R. Milner and M. Tofte. Co-induction in relational semantics. Theoretical Computer Science, 1990. (to appear).

    Google Scholar 

  10. E. Moggi. Computational lamb da-calculus and monads. In Fourth annual symposium on Logic in Computer Science, 1989.

    Google Scholar 

  11. C.-H. Luke Ong. The Lazy Lambda Calculus: An Investigation into the Foundations of Functional Programming. PhD thesis, Imperial College, University of London, 1988.

    Google Scholar 

  12. D. Park. Concurrency and automata on infinite sequences. In 5th GI conference on Theoretical Computer Science. LNCS 104, Springer Verlag, 1980.

    Google Scholar 

  13. D. Sands. Calculi for Time Analysis of Functional Programs. PhD thesis, Imperial College, September 1990.

    Google Scholar 

  14. 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.

    Google Scholar 

  15. 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.

    Google Scholar 

  16. 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.

    Google Scholar 

  17. B. Thomsen. An extended bisimulation induced by a prorder on actions. Master’s thesis, Aalborg University, Institute of Electronic Systems, 1987.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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

Publish with us

Policies and ethics