•Context:
–Very soon, software verifiers will mature enough to be
able to check powerful
properties on large programs (see previous topic).
•Problem:
–But where will the properties of correctness come from?
–These powerful tools will be of little use without
enough properties to be
checked!
•Solution:
–The huge software base contains invaluable information
(that’s available nowhere
else):
•When programmers resolve an problem with an API (e.g.,
“what arguments to pass to a
library procedure?”), they often don’t document the solution. Instead,
the solution is encoded only in the code.
•can observe how multiple programmers use an API, and
”take a vote.”
–
–So, use “data mining” to infer the properties from
code
•using the maxim that “common usage is correct
usage.”
•
•Papers: