On: raising the semantic level of a program
Chuck Guzis
cclist at sydex.com
Sun Jun 28 18:50:32 CDT 2020
On 6/28/20 4:20 PM, Peter Corlett via cctalk wrote:
> On Sun, Jun 28, 2020 at 01:32:02PM -0700, Chuck Guzis via cctalk wrote:
> [...]
>> Why is byte-granularity in addressing a necessity?
>
> Because C's strings are broken by design and require one to be able to form a
> pointer to individual characters.
That's not a barrier, as IIRC, the C standard doesn't call out a
specific format for pointers, other than that of NULL.
I know that there was a C for the CDC Cyber series, but I don't recall
the implementation details.
It's noteworthy that on the Univac 1100 series, a "byte" could be 6, 9
or 12 bits, but not 8. (36 bit words). The PDP-10 had similar issues,
such as the "packed" string format of 5 7-bit characters per word, with
one bit unused.
> One wheeze is to just declare that bytes are the same size as a
machine word. C
> doesn't require char to be exactly 8 bits, but merely at least 8 bits. However,
> a lot of C code will break if char, short, int and long aren't exactly the same
> size as they are on x86. Mind you, a lot of it is still broken even if they
> are...
Who cares about x86? I suspect that there's a lot of x86 code out there
that assumes little-endian quantities as well.
If you want to run code written for the x86 platform, get an x86 system.
--Chuck
More information about the cctalk
mailing list