Skip to main content

A Tiny Functional Language with Logical Features

  • Conference paper
Book cover Declarative Programming, Sasbachwalden 1991

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

  • 36 Accesses

Abstract

The non-deterministic lambda-calculus is a tiny core language in terms of which all the declaratively understood constructs of constraint functional languages may be defined. This paper describes a denotational semantics based on lower powerdomains, and a polymorphic type system. The calculus has a confluent operational semantics, which may be formulated in several ways—an extension of de Bruijn’s calculus is used here.

More useful language constructs may be defined in terms of the core language. The aim of this translation is not to give an implementation—higher-level languages will typically provide efficient implementations of the specific features they provide. Rather the translation to the core language gives a semantics for the higher-level constructs, and provides a standard against which their implementations may be judged. Similarly, transformations at the higher-level may be justified by translating them to transformations proved correct for the core.

This work was supported by Esprit Basic Research Action 3147: Phoenix.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

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

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. M. Abdali, L. Cardelli, P.-L. Curien, and J.-J. Lévy. Explicit substitutions. In 17th Annual ACM Symposium on Principles of Programming Languages pages 31–46,1990.

    Google Scholar 

  2. E. Astesiano and G. Costa. Sharing in nondeterminism. In 6th International Conference on Automata, Languages and Programming, volume 71 of Lecture Notes in Computer Science, 1979.

    Google Scholar 

  3. H. P. Barendregt. North Holland, 2nd edition, 1984.

    Google Scholar 

  4. Rod M. Burstall and John Darlington. A transformation system for developing recursive programs. Journal of the ACM24(1):44–67, 1977.

    Google Scholar 

  5. M. C. B. Hennessy. The semantics of call-by-value and call-by-name in a nondeterministic environment. SIAM Journal on Computing9(1):67–84, 1980.

    Google Scholar 

  6. M. C. B. Hennessy and E. A. Ashcroft. Parameter passing mechanisms and nondeterminism. In 9th Annual ACM Symposium on Theory of Computing,pages 306–311

    Google Scholar 

  7. M. C. B. Hennessy and E. A. Ashcroft. A mathematical semantics for a nondeterministic typed.A-calculus. Theoretical Computer Science, 11: 227–245, 1980.

    Article  MATH  MathSciNet  Google Scholar 

  8. John Hughes. Supercombinators - a new implementation technique for applicative languages. In Proceedings of the 1982 ACM Symposium on LISP and Functional Programming, pages 1–10, Pittsburgh, 1982.

    Google Scholar 

  9. David MacQueen, Gordon D. Plotkin, and Ravi Sethi. An ideal model for recursive polymorphic types. Information and Computation, 71: 95–130, 1986.

    MATH  MathSciNet  Google Scholar 

  10. Michael G. Main. A powerdomain primer. Bulletin of the EATCS, 33: 115–147, October 1987.

    MATH  Google Scholar 

  11. Robin Milner. A theory of type polymorphism in programming. Journal of Computer and System Sciences17(3):348–375, 1978.

    Google Scholar 

  12. Simon L. Peyton Jones. The Implementation of Functional Programming Languages. Prentice Hall, Englewood Cliffs, NJ, 1987.

    Google Scholar 

  13. Gordon D. Plotkin. A powerdomain construction. SIAM Journal on Computing, 1976.

    Google Scholar 

  14. Frank S. K. Silbermann. A Denotational Semantics Approach to Functional and Logic Programming. PhD thesis, Tulane University, 1989.

    Google Scholar 

  15. Frank S. K. Silbermann and Bharat Jayaraman. Set abstraction in functional and logic programming. In Conference on Functional Programming Languages and Computer ArchitectureLondon, 1989. ACM.

    Google Scholar 

  16. Mike B. Smyth. Powerdomains. Journal of Computer and System Sciences16:23–36, 1978.

    Google Scholar 

Download references

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1992 Springer-Verlag London

About this paper

Cite this paper

Paterson, R. (1992). A Tiny Functional Language with Logical Features. In: Darlington, J., Dietrich, R. (eds) Declarative Programming, Sasbachwalden 1991. Workshops in Computing. Springer, London. https://doi.org/10.1007/978-1-4471-3794-8_5

Download citation

  • DOI: https://doi.org/10.1007/978-1-4471-3794-8_5

  • Publisher Name: Springer, London

  • Print ISBN: 978-3-540-19735-5

  • Online ISBN: 978-1-4471-3794-8

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics