On 28-Jul-1999, Lennart Augustsson <[EMAIL PROTECTED]> wrote:
> Fergus Henderson wrote:
> > ...  This is OK in Mercury because in Mercury
> > although the operational semantics is required to be sound w.r.t. the
> > declarative semantics, it is not required to be complete; in cases
> > where the declarative semantics says that the result is `yes', it may
> > still be acceptable for the implementation to throw an exception
> > rather than computing the result `yes'.  In Mercury, if you want to
> > reason about whether your program will terminate or throw exceptions,
> > you need to use the operational semantics rather than the declarative
> > semantics.
> 
> Well, given that I think I'll stick to functional languages. ;-)

I see the ;-) but I think it deserves a response anyway:
in Haskell, you can reason about termination and _some_ kinds of
exceptions using the declarative (denotational) semantics, but
for reasoning about termination within reasonable time periods
(e.g. the lifetime of this universe) and for reasoning about other
kinds of exceptions you still need to use the operational semantics.
So I don't think it really buys you that much.

-- 
Fergus Henderson <[EMAIL PROTECTED]>  |  "I have always known that the pursuit
WWW: <http://www.cs.mu.oz.au/~fjh>  |  of excellence is a lethal habit"
PGP: finger [EMAIL PROTECTED]        |     -- the last words of T. S. Garp.


Reply via email to