On Tue, Feb 8, 2011 at 7:04 AM, Patrick Browne <patrick.browne@dit.ie> 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