(Funny how this conversation makes me feel like one of
a few surviving
members of a tribe speaking a soon to be dead language...)
I think there is a beautiful simplicity to B code as a high level
assembler or universal machine language. The lack of types is closer
to the machine since a CPU generally does not enforce types on memory
or register cells.
Adding types to B (to create C) was an excellent design choice,
however another choice would have been to keep it type-less. Operator
forms would explicitly encode the appropriate type (such as unsigned
right shift >>> in Java, or floating point add #+ in BCPL.)
Pointer dereference and increment symbols would also need size
annotation (perhaps char and word forms would suffice.)
It is interesting to ponder such a language as a universal target for
higher level language compilers, or as a specialized language for OS
and device driver development.<div
id="DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2"><br />
<table style="border-top: 1px solid #D3D4DE;">
<tr>
<td style="width: 55px; padding-top: 13px;"><a
href="https://www.avast.com/sig-email?utm_medium=email&utm_source=…
target="_blank"><img
src="https://ipmcdn.avast.com/images/icons/icon-envelope-tick-round-or…
width="46" height="29" style="width: 46px; height: 29px;"
/></a></td>
<td style="width: 470px; padding-top: 12px; color: #41424e;
font-size: 13px; font-family: Arial, Helvetica, sans-serif;
line-height: 18px;">Virus-free. <a
href="https://www.avast.com/sig-email?utm_medium=email&utm_source=…
target="_blank" style="color: #4453ea;">www.avast.com</a>
</td>
</tr>
</table><a href="#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2"
width="1"
height="1"></a></div>