[COFF] system implementation languages e.g. BLISS (was: mental architecture models, Anyone ever heard of teaching a case study of Initial Unix?)
Paul Winalski
paul.winalski at gmail.com
Sat Jul 13 04:20:27 AEST 2024
On Fri, Jul 12, 2024 at 1:45 PM Aron Insinga <aki at insinga.com> wrote:
> When verifying that, I found something I did not remember, that in
> BLISS-16 and -32 (and I would guess also -64), but not -36 (the
> word-addressed PDP-10), one could declare 8-bit signed and unsigned data:
>
> OWN
> X: BYTE SIGNED,
> Y: BYTE;
>
> So the concepts of 'type' in BLISS, at least regarding data size and
> representation, can get a little complicated (not to be confused with
> COMPLEX :-) ).
>
> Yes, BLISS-16, BLISS-32, and BLISS-64 have BYTE (and WORD also for
BLISS-32/64 IIRC) as a way to allocate data items smaller than a BLISS
value. Such a declaration also attaches an implicit default field
reference to the identifier. In the case of BYTE SIGNED it is <0, 8, 1>
and for BYTE <0,8,0>. So the expression:
Y = .X
was, in its completely expanded form:
Y<0,8,0> = .X<0,8,1>
Tying the BYTE and SIGNED attributes to the identifier cleaned up the
clutter of all those angle-bracket field references.
Similarly BLISS has VECTOR (one-dimensional, 0-based array), BLOCK
(equivalent of C's struct), and BLOCKVECTOR (array of structures) data
declaration attributes that carry implicit field and addressing semantics.
Again, a convenience for the programmer that alleviates clutter and makes
the program more readable.
-Paul W.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.tuhs.org/pipermail/coff/attachments/20240712/43099b91/attachment-0001.htm>
More information about the COFF
mailing list