The future of Haskell discussion
12 Sep 2001 12:37:25 -0000
Olaf Chitil <email@example.com> summarised the 10 minute talks
of this years Haskell workshop, including my presentation:
> Wolfram Kahl: Animating Haskell by Term Graph Rewriting
> HOPS is a system for term graph rewriting that can also show the
> rewriting steps in a graphical animation. [...]
For clarification, a few core points:
* I have a GHC extension, called MHA (for ``Munich Haskell Animator'')
that automatically converts programs written in a subset of Haskell
into HOPS modules. This is not yet publicly available,
but this may change in the future. Contact me if interested.
* Animation in HOPS can show every intermediate step,
but it is also possible to show only a selection,
currently by the module where the applied rules reside.
On a 1.2GHz Athlon, I currently get up to over 1000 raw rule applications
per second, and around 10 graph drawings per second, so
striking some reasonable balance can be quite helpful.
The current version of HOPS awaits mostly a thorough documentation
update for release.
The HOPS home page is: http://ist.unibw-muenchen.de/kahl/HOPS/
* Currently HOPS implements only one evaluation strategy,
namely leftmost outermost graph rewriting with sharing preservation
(without automatic sharing maximisation).
With the standard rules in place, this corresponds
to the original definition of lazy evaluation
(also known as the ``D-rule''), which is different
from the lazy pattern matching evaluation
of sequential Haskell implementations.
Naive translations can therefore yield inappropriate results,
and for some Haskell programs this is still the case
in the current version.
Therefore, you have to understand the translation
in order to be sure that what you see corresponds to
what happens in the Haskell implementation.
I hope to release MHA only after I have addressed this issue better
than in the current version.
* For a variety of reasons, I would tend to say that the HOPS/MHA approach
is really not very similar to GHood. Some of them may already
be apparent from the above, others would go into more detail
then I intend to do in this message.