Re: dependent and independent intervals
Le mardi 19 février 2013 à 12:37 -0800, Richard Fateman a écrit :
> > 1. the user performs memoization (some systems also do it, e.g. Maple);
> > 2. the user performs hash-consing;
> > 3. the environment performs maximal sharing (e.g. garbage collection or
> > serialization);
> > 4. the compiler performs optimization (e.g. common subexpression
> > eliminations).
> This is all entirely correct. There is a way around problems(1-4)
> which is to add a sequential
> marker to each newly-generated-interval-datum.
Sure, once all the intervals are guaranteed to have different values,
referential transparency is no longer a problem. But that introduces
some other issues instead. First, the global counter might overflow.
Second, it takes memory to store the marker into each interval. Third,
and presumably the most important issue, it prevents parallelization
since no two interval operations shall be allowed to access the global
counter at the same time.
I guess people will point out that there are ways around that last
point, e.g. encoding the logical processor identifier inside the marker,
so as to be able to use local counters instead. But in the end, is it
really worth standardizing a new representation for intervals, which
integrates a marker, just in case someone wants to infer implicit
expressions from user code?
Best regards,
Guillaume