3 ms·
The "nor is the hardware a PDP 11". Byte access was the main new feature of the PDP 11 that C adopted. Are you saying being able to access individual bytes is n
by uecker 5mo ago
The "nor is the hardware a PDP 11". Byte access was the main new feature of the PDP 11 that C adopted. Are you saying being able to access individual bytes is not relevant on modern hardware?
- shakna 5mo agoMight more mean that we've standardised on a few things like what a byte even is. The PDP-11 had both 8 and 9-bit bytes. Thats a complexity that few programmers have to touch on, today.
- elch 5mo agoIIRC PDP-11 was a 16 bit word machine with an 8-bit byte. Maybe you remember PDP-10 with 4x9=36 bit words?
- uecker 5mo agoAnyway, I do not see how this affects the design of C in a way that makes no sense anymore today (except that one could require CHAR_BIT to be eight, but there are still DSPs where this is not the case). I think people repeat the "the C design reflects the out-dated PDP-11 hardware" meme because it sounds smart while in reality it is just nonsense.
- pjmlp 5mo agoSo when is WG14 standardising modern hardware into the C standard? Basic stuff like SIMD, SIMT, without requiring users to go beyond language extensions, something that any programming language can offer in similar capacity?
- uecker 5mo agoAh, the "what is not standardized does not exist" argument again.
- 1718627440 5mo agoWhy does the language standard need to prescribe everything. It is a standardization of between existing compilers, they are allowed and intended to invent things. If anything the experience from C++ has shown, that writing too much behaviour into the standard accidentally has consequences on the possible performance. The C standard is descriptive, not prescriptive. > something that any programming language can offer in similar capacity? By your measure a lot of other languages don't offer anything to begin with, because they do not have a standard at all, only a reference implementation.
- shakna 5mo agoOn the 11, the UNIBUS was 18 bit, the program space was 16 bit, and addressing was 22 bit. So it depended if you were using I-space or D-space.
- zabzonk 5mo agoActually, if you were mad enough to use the feature, the Dec10 had 6-bit "bytes" - 6 to a word.
- pjmlp 5mo agoIt is, however hardly something unique to C, as the C crowd pretends it to be.