Отправлено с iPad
In the same way, denotational semantics adds features which do not apply to a theory of finite computation.
And why exactly should we limit ourselves to some theory you happen to like?
> The /defining/ feature of a bottom is that it doesn't have an interpretation.
What do you mean by "interpretation"?
You know, the basic notion of a function which maps syntax to concrete values.
But (_|_) IS a concrete value.
But they ARE very similar to other values. They can be members of otherwise meaningful structures, and you can do calculations with these structures. "fst (1, _|_)" is a good and meaningful calculation.
Mere syntax.
So what?
> Every other Haskell value /does/ have an interpretation.
So, (_|_) is bad, but (1, _|_) is good?
I did not introduce "good" and "bad" into this discussion. I have merely said (in more words) that I want my hypothetical perfect language to prefer OPERATIONAL (model) SEMANTICS for a typed PARACONSISTENT LOGIC over the DENOTATIONAL SEMANTICS which the official documentation sometimes dips into.
Well, that's a different story. But it seems to me that the term "Haskell-like" won't apply to that kind of language. Also, it seems to me (though I don't have any kind of proof) that denotational semantics is something that is much simpler.
It is clear that denotational semantics is a Platonic model of constructive computation.
Could you please stop offending abstract notions?
Then you are mistaken. I am talking about choosing the appropriate mathematical model of computation to accurately, clearly, and simply describe the language's semantics.
Well, domain theory does exactly that for Haskell.