C semantics do not work "directly on the hardware" but instead on an abstract machine that is then converted to the actual hardware.
It most often comes up when talking about undefined behavior and pointer behavior.
Some assorted reading, mostly in the context of Rust and C:
https://blog.regehr.org/archives/213
https://raphlinus.github.io/programming/rust/2018/08/17/unde...
https://www.ralfj.de/blog/2018/07/24/pointers-and-bytes.html
https://www.ralfj.de/blog/2017/06/06/MIR-semantics.html
[1]: https://stackoverflow.com/questions/53100198/what-is-the-pre...
Assembly once worked directly on the hardware. On modern machines it doesn't.
C semantics do not work "directly on the hardware" but instead on an abstract machine that is then converted to the actual hardware.
It most often comes up when talking about undefined behavior and pointer behavior.
Some assorted reading, mostly in the context of Rust and C:
https://blog.regehr.org/archives/213
https://raphlinus.github.io/programming/rust/2018/08/17/unde...
https://www.ralfj.de/blog/2018/07/24/pointers-and-bytes.html
https://www.ralfj.de/blog/2017/06/06/MIR-semantics.html
[1]: https://stackoverflow.com/questions/53100198/what-is-the-pre...