Where should the type information be: in tags and descriptors 429
Where should the type information be: in tags and descriptors 430
On Fri, 08 Apr 2005 15:23:57 +1200, Brian Boutel I also would love to read it again; I may even have some of it in storage someplace...
Bit field operations may be needed for all data types. Tags probably get ignored for these.
In the Burroughs large system architecture, anyone can write a tag. It is normally done automatically by the instruction that writes the data value, and set to whatever is implied by the operation. Safety is "brought forth" at read time, when the tag is checked to ensure that the data object is valid for the operation to be performed, or, in some cases, to direct the operation to perform correctly for the data encountered (e.g. the Add operator is the same for single and double precision values, and what happens is determined by the tag value). An interesting example (in the case of the B6700 at least) was the use by some compilers of an otherwise unused tag value to mark uninitialised variables. These words could be written freely, but an attempt to read one would cause an exception.
So the correct tag for a union is whatever the correct tag is for the value currently stored.
That one is indeed a problem, but, as you say, that may be a good thing.
Again, in the Burroughs model, tags do not get written to disk, etc. They are created when a value is written to memory. Code is executable if it lives in a file marked as a code file. Only an approved compiler can mark a file as code, and making a code file a compiler requires operator action at the system console (SPO). There are ways round this :-)
-- Brian Boutel Wellington, New Zealand
Alt Folklore Computers Newsgroups