[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Mobile variables

Richard Beton wrote:
> Lawrence Dickson wrote:
> > What happens if the variable you are passing around
> > is a part of a larger array, created by abbreviation?
> > Then when the process block exits the scope of the
> > abbreviation, isn't its parent array fragmented?
> >    Larry
> > I thought of something like this a couple years ago,
> > but it seemed it would require an "Independent of
> > Abbreviation" checking, which would complicate
> > separately compiled procedures and the like.
> I'm not quite sure I understand the question, so I'll probably reveal my
> ignorance, but here goes...
> One of the key features of occam abbreviations is that they allow a
> process to alter the contents of a well-defined region of an array
> without actually fragmenting the original array - the abbreviated part
> is still a subset of the whole. Therefore, passing array abbreviations
> as mobile variables would seem like an eminently sensible thing to be
> doing. 'Mobile' variables are only mobile in the sense that their
> 'ownership' moves between processes, whilst the data itself remains in
> the same memory locations, thus avoiding copying operations.
> The challenge is to work out how to ensure that different processes
> operate on disjoint (abbreviated) parts of shared arrays. This is much
> easier with occam using abbreviations than with any other mechanism I
> know of, but is still non trivial.

My proposal, and the slighly modified version that I will describe
in a later message, seems to solve all those problems. But I may have
missed something.

Dr A E Lawrence (from home)