Quote:

> > I quote an article of mine from April:

> > : Hmmm, this doesn't sound right. After all, if A and B could be aliased,

> > : and B and C could be aliased, then A and C could be aliased. (This is

> > : why the natural keyword is ``alias,'' not ``noalias.'')

> > I have always held the same position. You can see exactly the same

> > position in many of my articles, and in my complaint that the Convex

> > anti-aliasing mechanism makes the opposite assumption.

> But, this is not correct.

What is not correct? We were talking about Jim's misquotes.

Quote:

> Consider the example:

You have a different interpretation of ``could be.'' You're saying that

in one particular program, A and B happen to be aliased some of the

time, and B and C happen to be aliased some of the time, but A and C are

not aliased.

I'm saying that in the universe under the assumptions that A and B can

be aliased and that B and C can be aliased, it's certainly true that A

and C can be aliased, though they might not be in a particular example.

In contrast, under the assumptions that A and B are never aliased and

that B and C are never aliased, it's *not* true that A and C are never

aliased, though it may happen that they are not aliased in a particular

example.

In case that paragraph was confusing: f(X,Y) = X and Y can be aliased.

g(X,Y) = X and Y cannot be aliased.

``Under the assumptions that f(A,B) and f(B,C), it's certainly true

f(A,C), though A and C might not be aliased in a particular example.

In contrast, under the assumptions that g(A,B) and g(B,C), it's not

true g(A,C), though it may happen that A and C are not aliased in a

particular example.''

Why isn't this symmetric? Because g(X,Y) is ``never f(X,Y)'', but

f(X,Y) is not ``never g(X,Y).'' The ``can''s and ``never''s are

important here.

Can-can algebra aside, alias (``these variables are sometimes aliased'')

feels like a more natural qualifier than noalias (``these variables are

never aliased''). Why? Because the quantifier in alias transcends a

specific use of a function or library and talks about how it's *meant*

to be used. In contrast, the quantifier in noalias talks about the world

as it might happen to be at one moment.

To go a bit further and introduce the missing elements: Think about the

qualifiers antialias (``these variables may be unaliased'') and

noantialias (``these variables *must* be aliased''). If I had to choose

between these two instead of alias-noalias, I'd choose the former. Why?

Because the ``may'' makes it feel more natural.

I don't know if I can give a logical explanation for an emotional issue,

but I hope this helps you understand my point.

---Dan