Wolfgang Lux wrote:
> I think sharing of variables across different branches of a
> non-deterministic choice should only be a matter of optimization.
> An implementation *may* choose to share variables across
> non-deterministic branches if it can prove that this does not affect
> the results computed (though eventually the order in which they are
> computed). On the other hand, within a particular branch of a
I fully agree to this. I think that sharing is heavily related
to the details of the operational semantics. For instance,
sharing is important to obtain optimal evaluation in
demand-driven strategies. It is required for non-confluent
programs evaluated by a demand-driven strategy if the declarative
semantics is based on CRWL. Thus, if the declarative semantics
of a language like Curry or Toy is based on CRWL,
sharing between non-deterministic branches can be an important
optimization (in particular contexts) but is not strictly required.
If one wants to have more, it should be justified by a
declarative semantics in order to make it comprehensible
without any reference to a complex strategy.
Best regards,
Michael
_______________________________________________
curry mailing list
curry_at_lists.RWTH-Aachen.DE
http://MailMan.RWTH-Aachen.DE/mailman/listinfo/curry
Received on Do Nov 01 2007 - 10:25:05 CET