On Tue, Feb 8, 2011 at 7:04 AM, Patrick Browne <[email protected]>wrote:
> Consider the following definitions: > 1. Denotational semantics can be considered as relation between syntax > and mathematical objects (the meaning of the syntax). > 2. Operational semantics can be considered as set of rules for > performing computation. > > Question 1 > Applying these definitions in a Haskell context can I say that the > lambda calculus provides both the operational and denotational > semantics for Haskell programs at value level for definition and > evaluations. > > Question 2 > Does it make sense to use these definitions at type level? If so, what > exactly do they represent? > > Thanks, > Pat > Here's my personal denotational answer to question 2: I think of a type as denoting a collection of (mathematical) values. If an expression e has type T, then the meaning (value) of e is a member of the collection denoted by T. This simple principle, which is fundamental to how I think of functional programming, has consequences in library design, which I've discussed at http://conal.net/blog/posts/notions-of-purity-in-haskell/ . Regards, - Conal
_______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
