Comment by pjmlp

4 hours ago

This was only the case when the machine code generated from C compilers was almost 1:1 to PDP-11, or similar 16 bit home computers.

Since optmizing compilers became a thing in the C world, and the WG14 never considered modern CPU architectures on what hardware features C should expose, this idea lost meaning.

However many people hold on to old beliefs that C is still the same kind of C that they learnt with the first edition of K&R C book.

This ACM article might be interesting to you, https://queue.acm.org/detail.cfm?id=3212479

Before dismissing it as the author having no idea what he is talking about, David Chisnall used to be a GCC contributor, one of the main GNUStep contributors back in the original days, and one of the key researchers behind the CHERI project.

David is quite accomplished, but in this instance he is simply wrong. For two reasons:

1. All the reasons he cites that depend on "what the metal does" being different and quite a bit more complex than what is surfaced in C apply equally to machine/assembly language. So the CPU's instruction set is not a low-level language? Interesting take, but I don't think so: it is the lowest level language that is exposed by the CPU.

2. The other reasons boil down to "I would like to do this optimization", and that is simply inapplicable.