Previous | Next --- Slide 23 of 51
Back to Lecture Thumbnails

So for hardwares that allow all orderings, is it the compiler's responsibility to ensure the uniqueness of the meaning of a program? Or should this detail be exposed to programmers?


I think it is the programmer's responsibility although it is implicitly handled through synchronization libraries. The library handles the architectural details in order to present the typical synchronization abstractions (locks etc). All the programmer needs to do is work with the sync abstractions.


@randomthread hit it on the head. It's the same thing we come back to with abstraction vs. implementation. All we care about is that we have libraries for things such as locks and fences, and what type of behavior it results in for our programs, rather than the in-depth details of how these behaviors are represented.