Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!wuarchive!udel!haven!adm!cmcl2!kramden.acf.nyu.edu!brnstnd From: brnstnd@kramden.acf.nyu.edu (Dan Bernstein) Newsgroups: comp.lang.misc Subject: Technical: Definitions of ``Poynter'', ``Shyfting'' Message-ID: <19485:Nov1608:33:4490@kramden.acf.nyu.edu> Date: 16 Nov 90 08:33:44 GMT Sender: brnstnd@kramden.acf.nyu.edu (Dan Bernstein) Organization: IR Lines: 25 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