[mercury-users] Native garbage collector for Mercury

Jonathan Martin jcm93r at ecs.soton.ac.uk
Tue Sep 15 22:49:50 AEST 1998


> So Ralf, part of your research is software agents, right?  My point is this:
> Right now there are several attempts to define an "agent language" such as
> KIF or KDE for purposes of communications/marshelling of resources in
> distributed computing.  Instead of starting from scratch to create a
> new agent modeling language, I believe that it would be a better strategy
> to use Mercury as a starting point--with its termination analysis capability
> being a big selling point.  Yes, there's the halting problem, but Mercury's
> termination analysis is already very good (it can prove the termination of
> over 50% of the proceedures used in the Mercury compiler, for example), and
> there's nothing which prevents someone from writing a server which will only
> run programs which Mercury can prove will terminate.

Presumably then, it wouldn't allow the Mercury compiler to run (or much
else for that matter).

Mercury's termination analysis is not very good at all.  OK it can
prove termination for 50% of the compiler, but that still leaves about
50,000 lines of code to be proven terminating by hand.  Even with a
99% hit rate (which would be very hard to achieve), that's still about
1000 lines of code left for hand checking.  And unless you check it
all (automatically or otherwise), the analysis is pretty much a waste
of time since the answer to the question "Does this query terminate?"
is still "Don't know".

This is not a slight against Mercury - the strong types and modes do
come in very handy for proving termination - I just think that
automatic termination analysis has a long way to go before it can be
used for "real" programs in the way you suggest.


Jonathan Martin		jcm93r at ecs.soton.ac.uk
----------------------------------------------
Department of Electronics and Computer Science
The Mountbatten Building  Room 3053
University of Southampton   S017 1BJ
----------------------------------------------





More information about the users mailing list