Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10.2 9/18/84; site ucsfcca.UUCP
Path: utzoo!watmath!clyde!burl!ulysses!ucbvax!ucsfcgl!ucsfcca!dick
From: dick@ucsfcca.UUCP (Dick Karpinski)
Newsgroups: net.arch
Subject: Tagged architectures
Message-ID: <412@ucsfcca.UUCP>
Date: Fri, 20-Sep-85 19:14:09 EDT
Article-I.D.: ucsfcca.412
Posted: Fri Sep 20 19:14:09 1985
Date-Received: Sun, 22-Sep-85 23:55:24 EDT
References: <796@kuling.UUCP> <1713@orca.UUCP> <1599@peora.UUCP> <335@ihlpl.UUCP> <2384@uvacs.UUCP>
Reply-To: dick@ucsfcca.UUCP (Dick Karpinski)
Organization: UCSF Computer Center
Lines: 28

In article <2384@uvacs.UUCP> mac@uvacs.UUCP (Alex Colvin) writes:
>
>I'm still looking for a machine that will trap references to uninitialized
>data.

Arthur Sale (of Pascal Validation Suite fame) wrote a paper about the
proper use of Tag-6 in the Burroughs (sp?) 5500 and successors.  That
flavor of tag (among 8) allows the item to be passed to a subroutine
but not used in expressions.  Only assignment to it is permitted.
Tagged architectures are very tidy, and with the ever decreasing cost
of memory, they become even more attractive.  A few bits and a little
support with comparators in silicon lets you catch very many otherwise
obscure bugs in quite conventional programs.  Compilers get involved
but in many ways, the tags help in avoiding other kinds of run time
tests.  In silicon and in parallel means the cost is reduced to a few
square microns and a few micro-watts.  

Given support by the compiler, even arrays of Booleans can be spread
out into words for checkout purposes to make use of the tags.  I have
neve seen this done.

Dick

-- 
Dick Karpinski    Manager of Unix Services, UCSF Computer Center
UUCP: ...!ucbvax!ucsfcgl!cca.ucsf!dick   (415) 666-4529 (12-7)
BITNET: dick@ucsfcca   Compuserve: 70215,1277  Telemail: RKarpinski
USPS: U-76 UCSF, San Francisco, CA 94143