|
|
|
|
|
by Manishearth
3344 days 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) |
|