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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
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.
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.
H. P. Barendregt. North Holland, 2nd edition, 1984.
Rod M. Burstall and John Darlington. A transformation system for developing recursive programs. Journal of the ACM24(1):44–67, 1977.
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.
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
M. C. B. Hennessy and E. A. Ashcroft. A mathematical semantics for a nondeterministic typed.A-calculus. Theoretical Computer Science, 11: 227–245, 1980.
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.
David MacQueen, Gordon D. Plotkin, and Ravi Sethi. An ideal model for recursive polymorphic types. Information and Computation, 71: 95–130, 1986.
Michael G. Main. A powerdomain primer. Bulletin of the EATCS, 33: 115–147, October 1987.
Robin Milner. A theory of type polymorphism in programming. Journal of Computer and System Sciences17(3):348–375, 1978.
Simon L. Peyton Jones. The Implementation of Functional Programming Languages. Prentice Hall, Englewood Cliffs, NJ, 1987.
Gordon D. Plotkin. A powerdomain construction. SIAM Journal on Computing, 1976.
Frank S. K. Silbermann. A Denotational Semantics Approach to Functional and Logic Programming. PhD thesis, Tulane University, 1989.
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.
Mike B. Smyth. Powerdomains. Journal of Computer and System Sciences16:23–36, 1978.
Editor information
Editors and Affiliations
Rights 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