top | item 34625475

(no title)

1ris | 3 years ago

No, The strict aliasing part of the semantic of the memory. “syntax sugar” is, per definition, part of the syntax.

discuss

order

gpderetta|3 years ago

Indeed. What the strict aliasing rule implies is that only well typed C programs have meaning. Which means that C is indeed not "just memory".

If C was just memory, the only operations allowed would be on and through memory addresses, and values wouldn't be first class.

jstimpfle|3 years ago

"Memory" might not even be a concept in the C standard, rather it is what C programmers think about in practice. The culture around the language is that the language should get out of the way as much as possible while still providing a good amount of convenience, portability, and performance. The standard is a necessity, but is not the center of attention while working.

int_19h|3 years ago

But then there's the memcpy escape hatch that lets you treat anything and everything as a raw sequence of bytes with no concern for types or aliasing. So arguably the fundamental memory model is still "just memory" (albeit not necessarily a single address space), and the rest is bolted on top and applies only to specific language constructs.