2015 | OriginalPaper | Chapter
Hint
Swipe to navigate through the chapters of this book
Published in:
Programming Languages
In this paper we present a denotational semantics for a lazy functional language. The semantics is intrinsic in the sense that it defines meaning for typing derivations instead of language expressions. We contrast our semantics with the well-known evaluation rules defined by Sestoft [17] and show that these rules preserve types and meaning.
Please log in to get access to this content
To get access to this content you need the following product:
Advertisement
1.
2.
go back to reference The Coq Proof Assistant. http://coq.inria.fr/ The Coq Proof Assistant.
http://coq.inria.fr/
3.
go back to reference Abramsky, S.: The lazy lambda calculus. In: Turner, D. (ed.) Research Topics in Functional Programming, pp. 65–116. Addison-Wesley, Boston (1990) Abramsky, S.: The lazy lambda calculus. In: Turner, D. (ed.) Research Topics in Functional Programming, pp. 65–116. Addison-Wesley, Boston (1990)
4.
go back to reference Abramsky, S., Ong, C.L.: Full abstraction in the lazy lambda calculus. Inf. Comput. 105(2), 159–267 (1993) MathSciNetCrossRefMATH Abramsky, S., Ong, C.L.: Full abstraction in the lazy lambda calculus. Inf. Comput.
105(2), 159–267 (1993)
MathSciNetCrossRefMATH
5.
go back to reference Benton, N., Kennedy, A., Varming, C.: Formalizing Domains, Ultrametric Spaces and Semantics of Programming Languages (2010), unpublished Benton, N., Kennedy, A., Varming, C.: Formalizing Domains, Ultrametric Spaces and Semantics of Programming Languages (2010), unpublished
6.
go back to reference Breitner, J.: The correctness of Launchbury’s natural semantics for lazy evaluation. Archive of Formal Proofs (2013) Breitner, J.: The correctness of Launchbury’s natural semantics for lazy evaluation. Archive of Formal Proofs (2013)
7.
go back to reference Hughes, R.J.M.: Super-combinators: a new implementation method for applicative languages. In: Proceedings of the 1982 ACM Symposium on LISP and Functional Programming, LFP 1982, pp. 1–10. ACM, New York (1982) Hughes, R.J.M.: Super-combinators: a new implementation method for applicative languages. In: Proceedings of the 1982 ACM Symposium on LISP and Functional Programming, LFP 1982, pp. 1–10. ACM, New York (1982)
8.
go back to reference Jones, P.L.S.: Implementing lazy functional languages on stock hardware: the spineless tagless G-machine. J. Funct. Program. 2(2), 127–202 (1992) CrossRefMATH Jones, P.L.S.: Implementing lazy functional languages on stock hardware: the spineless tagless G-machine. J. Funct. Program.
2(2), 127–202 (1992)
CrossRefMATH
9.
go back to reference Josephs, M.B.: The semantics of lazy functional languages. Theor. Compu. Sci. 68(1), 105–111 (1989) MathSciNetCrossRefMATH Josephs, M.B.: The semantics of lazy functional languages. Theor. Compu. Sci.
68(1), 105–111 (1989)
MathSciNetCrossRefMATH
10.
go back to reference Kieburtz, R.B.: The G-machine: a fast, graph-reduction evaluator. In: Jouannaud, J.P. (ed.) FPLCA 1985. LNCS, vol. 201, pp. 400–413. Springer, Heidelberg (1985) CrossRef Kieburtz, R.B.: The G-machine: a fast, graph-reduction evaluator. In: Jouannaud, J.P. (ed.) FPLCA 1985. LNCS, vol. 201, pp. 400–413. Springer, Heidelberg (1985)
CrossRef
11.
go back to reference Krivine, J.L.: A call-by-name lambda-calculus machine. High. Order Symbolic Comput. 20(3), 199–207 (2007) MathSciNetCrossRefMATH Krivine, J.L.: A call-by-name lambda-calculus machine. High. Order Symbolic Comput.
20(3), 199–207 (2007)
MathSciNetCrossRefMATH
12.
go back to reference Launchbury, J.: A natural semantics for lazy evaluation. In: POPL, pp. 144–154 (1993) Launchbury, J.: A natural semantics for lazy evaluation. In: POPL, pp. 144–154 (1993)
13.
go back to reference Nakata, K.: Denotational semantics for lazy initialization of letrec: black holes as exceptions rather than divergence. In: 7th Workshop on Fixed Points in Computer Science (2010) Nakata, K.: Denotational semantics for lazy initialization of letrec: black holes as exceptions rather than divergence. In: 7th Workshop on Fixed Points in Computer Science (2010)
14.
go back to reference Reynolds, J.C.: The Coherence of Languages with Intersection Types. In: Ito, T., Meyer, A.R. (eds.) TACS 1991. LNCS, vol. 526, pp. 675–700. Springer, Heidelberg (1991) CrossRef Reynolds, J.C.: The Coherence of Languages with Intersection Types. In: Ito, T., Meyer, A.R. (eds.) TACS 1991. LNCS, vol. 526, pp. 675–700. Springer, Heidelberg (1991)
CrossRef
15.
go back to reference Reynolds, J.C.: Theories of Programming Languages. Cambridge University Press, New York (1999) MATH Reynolds, J.C.: Theories of Programming Languages. Cambridge University Press, New York (1999)
MATH
16.
go back to reference Reynolds, J.C.: The Meaning of Types - From Intrinsic to Extrinsic Semantics. Technical report RS-00-32, BRICS, December 2000 Reynolds, J.C.: The Meaning of Types - From Intrinsic to Extrinsic Semantics. Technical report RS-00-32, BRICS, December 2000
17.
go back to reference Sestoft, P.: Deriving a lazy abstract machine. J. Funct. Program. 7(3), 231–264 (1997) MathSciNetCrossRefMATH Sestoft, P.: Deriving a lazy abstract machine. J. Funct. Program.
7(3), 231–264 (1997)
MathSciNetCrossRefMATH
- Title
- An Intrinsic Denotational Semantics for a Lazy Functional Language
- DOI
- https://doi.org/10.1007/978-3-319-24012-1_6
- Author:
-
Leonardo Rodríguez
- Publisher
- Springer International Publishing
- Sequence number
- 6