Topic 1: making C safe
•Problem:
–many hard-to-find bugs are due to null pointers, out-of-bounds accesses, pointer arithmetic.
•Solution:
–make C type-safe (like Java): insert run-time checks.
–but you pay for safety with huge run-time overhead:
•in time: tun-time checks are costly
•in space: must enrich pointers with extra run-time info
–to reduce overhead in
•… time, remove run-time checks that never fail.
•… space, avoid extra information for pointers that are used safely.
•Papers:
–Safe C, Austin et al
–CCured, Necula et al
–ABCD, Bodik et al
•