>
> The model that Jeremy and I have developed is longer, but I believe
> that our model is more grounded in the ways that compilers and
> architectures transform and execute programs. Thus, I believe it will
> be easily to explain to people and I feel confident with the proofs.
>
A potential problem with grounding a model in the ways that compilers and
architectures transform and execute programs is that one could get
unnecessarily constrained in a mindset that only considers transformations
and executions possible today. I think that's what is going on with tests 5
and 10.
My approach was to see what is the programming model desired (SC for drf
programs, no out-of-thin-air values, etc.) and derive a model that
incorporated exactly those constraints. Since this is primarily a
programming model, it should only be constrained by constraints arising from
requirements for programming, not what we can envisage architects and
compilers doing today. Time and again, system designers have shown that they
will do things that were not conceivable of a few years ago.
As far as explaining to people, there are two classes of people. For
programmers, most only should know about the SC for drf part. For the rest
of the programmers, I will leave it to them to judge which is simpler, since
I myself don't fall into that class. For system designers, again, I think
neither the M/P nor the SC- spec is a good one to use directly for most
system designers. I think it is too complex for most system designers to
determine when their systems will obey either model from the model spec
alone. Hence I provide accompanying system-centric spec for SC-: this is not
the model, but a set of sufficient conditions that most system designers can
obey and be confident that they obey SC-. For the more savvy designers who
want to go beyond the system-centric spec - they are going to have to do
some proofs with both M/P and SC- and it is unclear which, if any, is
qualitatively simpler.
Sarita
-------------------------------
JavaMemoryModel mailing list - http://www.cs.umd.edu/~pugh/java/memoryModel
This archive was generated by hypermail 2b29 : Thu Oct 13 2005 - 07:00:56 EDT