3 ms·
A C compiler that checks for all of these things at runtime is Valgrind. It's used when testing. A C compiler that checks all of these things at compile time w
by Manishearth 10y ago
A C compiler that checks for all of these things at runtime is Valgrind. It's used when testing.
A C compiler that checks all of these things at compile time would no longer be a C compiler.
Compile time guarantees require you to change the language and restrict what is allowed to compile. Rust does just that, it's a different language. You could write an extension to C like Cyclone (or the ISOCPPCore guidelines for C++) that make it safer via compile time checks. You would likely need more annotations and most existing C programs would no longer compile.
(There is the ergonomic benefit of being able to transition from a C codebase to a, say, Cyclone one, though)