[EMAIL PROTECTED] writes:
> I am looking for advice or ideas on the formulation of an operational
> semantics for studying the behaviour of Haskell programs.
> ... I would
> also be very interested to hear about any optimisations to lazy
> evaluation that you think should come as standard, or, indeed, any widely
> regarded as 'safe' or 'useful' that may actually be dangerous.
Andy Moran and I have studied when transformations are time-safe under
call-by-need by developing an "improvement theory". Details can be found in
our POPL'99 paper. An extended version of this work and other papers on
improvement theory and its applications can be found in
http://www.cs.chalmers.se/~dave/papers/
Jörgen Gustavsson <[EMAIL PROTECTED]> and I have a recent draft paper
describing a space-improvement theory for call-by-need. Many
innocent-looking transformations are potentially dangerous with respect to
space behaviour. For example, transforming x + y into y + x can change the
asymptotic space behaviour of a program! Another problem with space is that
there is consensus between the different implementations of call-by-need
when it comes to asymptotic space behaviour. For a particular "reasonable"
model of space behaviour, we have been able to descibe many transformation
rules which are space-safe. See the current draft for discussion,
references and more details:
http://www.cs.chalmers.se/~dave/papers/space.ps.gz
Comments are welcome.
Regards,
Dave