Taking Back Control: Closing the Gap Between C/C++ and Machine Semantics