Frank Steiner wrote
> I don't really see that. y/=y cannot be true within one computation space.
> In the same space, be it a local or a global space, a variable will always
> have the same value. If y appears in a local computation, it will either
> be bound, then it cannot escape from the local computation back into
> a higher space as a variable but only as a term to which this variable
> has been bound. If y is not bound at all in the local computation,
> it can return into the global space, but then it will remain shared with
> the other occurences. Thus, a variable will always have the same value
> in the same computation.
But still it is going to be bound to different values inside and outside the
encaspulated search and in that sense y /= y.
> By the way, has anyone an idea how difficult it would be to detect if
> a variable is shared or not? If we could easily decide that, then we
> would evaluate y if it was not shared, thus keeping the idea of not
> effecting global object while still preserving sharing, but in contrast
> to option 1 we would suspend in fewer cases...
You might have a look at the papers on sharing analysis :-)
But anyway -- as Herbert reminded me -- the results of this analysis would
be only an approximation. And making the outcome of a program (either a
result or a suspension) depend on how clever the compiler is (and how much
work the implementors dedicated to the analysis) is certainly not a
good thing.
Regards
Wolfgang
--
Wolfgang Lux Phone: +49-251-83-38263
Institut fuer Wirtschaftinformatik FAX: +49-251-83-38259
Universitaet Muenster Email: wlux_at_uni-muenster.de
Received on Mi Jan 16 2002 - 02:10:52 CET