Technical: Definitions of ``Poynter'', ``Shyfting'' 
Author Message
 Technical: Definitions of ``Poynter'', ``Shyfting''

Please include technical content, and only technical content, in any
followup to an article whose subject begins with ``Technical:''. Change
the subject line to introduce nontechnical issues. I will obey this rule
religiously. Note that emotional issues can be technical (e.g., whether
alias or noalias is more natural), but personal attacks cannot.

Here are definitions of two terms.

Poynter: An object that can hold the address of another object (perhaps
of a restricted type). As usual, a poynter supports assignment and
comparison. It may be set to the ``address of'' an object. It may be
``dereferenced'' in order to evaluate or modify the object whose address
it holds. These operations are explicit.

Shyfting: The operation of re-indexing a reference to an array with a
different base, so as to produce a reference to the same object with the
new indices.

A C pointer is a poynter with shyfting. A machine language index is a
poynter with shyfting. A Pascal or Ada pointer is a poynter without
support for shyfting. Apparently the new fortran includes shyfting
separately from its poynters. Ada's slicing is a limited form of
shyfting.

---Dan



Tue, 04 May 1993 16:33:44 GMT  
 Technical: Definitions of ``Poynter'', ``Shyfting''

Quote:
>Please include technical content, and only technical content, in any
>followup to an article whose subject begins with ``Technical:''. Change

Sounds good to me.

Quote:
>Poynter: An object that can hold the address of another object (perhaps
>of a restricted type). As usual, a poynter supports assignment and
>comparison. It may be set to the ``address of'' an object. It may be
>``dereferenced'' in order to evaluate or modify the object whose address
>it holds. These operations are explicit.

There is also a beastie called "reference", which supports assignment
and dereference, but *not* comparison. It's used in ML and
FX-90 (a locally developed language). I believe the C++ refs also
do not support comparison. Similarly, arithmetic on references
is not supported.

Quote:
>Shyfting: The operation of re-indexing a reference to an array with a
>different base, so as to produce a reference to the same object with the
>new indices.

What is the working definition  of "reference" in the above?

Mike Bolotski          Artificial Intelligence Laboratory, MIT



Wed, 05 May 1993 00:34:03 GMT  
 Technical: Definitions of ``Poynter'', ``Shyfting''
``IMU'' means ``in my understanding.''

``Beastie'' is a generic term for a thing, as ``object'' has a more
specific meaning.

Quote:


> >Poynter: An object that can hold the address of another object (perhaps
> >of a restricted type). As usual, a poynter supports assignment and
> >comparison. It may be set to the ``address of'' an object. It may be
> >``dereferenced'' in order to evaluate or modify the object whose address
> >it holds. These operations are explicit.
> There is also a beastie called "reference", which supports assignment
> and dereference, but *not* comparison.

Sorry I didn't define ``object'' or ``reference.'' A reference is a
compile-time, syntactic beastie; an object is a run-time, semantic
beastie. A reference can refer to an object, as in the way that the
tokens ``x[i]'' refer to the i'th element of the array x, and ``x''
refers to the array x, and so on. The nature of objects and references
is defined more precisely by the language.

There is no concept of comparing two references; they are syntactic
beasties. If they are available at run-time they might be implemented as
poynters, but their poynter values might not be stored anywhere.
References might be stored as strings of tokens, for instance.
Assignment of references means syntactic assignment. Dereferencing of
references means run-time evaluation.

IMU the beasties in C++ and ML work as above. In case this is not true,
the term ``repherences'' shall mean beasties that work as above.
Repherences are effectively defined by a subset of the poynter
operations, so poynters can always implement repherences with run-time
assignment. The C preprocessor implements repherences with compile-time
assignment. Repherences in general might not be assignable---i.e., it
may be that repherences cannot be stored in objects, but only evaluated
in program text.

Quote:
> Similarly, arithmetic on references
> is not supported.

C pointer arithmetic is shyfting. A beastie need not support shyfting to
be a poynter or a reference.

Quote:
> >Shyfting: The operation of re-indexing a reference to an array with a
> >different base, so as to produce a reference to the same object with the
> >new indices.
> What is the working definition  of "reference" in the above?

See above.

---Dan



Wed, 05 May 1993 03:47:01 GMT  
 
 [ 3 post ] 

 Relevant Pages 

1. Technical: Definition of ``alyasing''

2. stream('file','c','seek ='x) problem

3. Wanted: Hints'n'Tips'n'Bits'n'Bobs

4. There is an 'U'|'X'|'W'|'Z'|'-' in an arithmetic operand

5. Praegitzer Industries Inc.'s Technical Symposium '97

6. two definitions of 'cyclic'?

7. Definition of 'apply' of MDI GUI

8. Definition of 'pickle'

9. A definition for 'foreach'

10. 'manpage'-like CL-Definitions availiable ?

11. 'multiple definitions' with MacOS X

12. ( 2.31.New operators: 'eq', 'ne', 'last', '..' ) ?

 

 
Powered by phpBB® Forum Software