A Formal Semantics for the C Programming Language