60 likes | 257 Views
Calvinism. A static analysis for multithreaded program verification. Motive - Reformation. Verification is important Recall therac; recall mars rover Calvin was a really, really good idea but sort of complicated Therefore difficult to reason about Therefore difficult to see flaws in
E N D
Calvinism A static analysis for multithreaded program verification
Motive - Reformation • Verification is important • Recall therac; recall mars rover • Calvin was a really, really good idea but sort of complicated • Therefore difficult to reason about • Therefore difficult to see flaws in • Therefore difficult to build on Recall that most good ideas were simple to understand. (i.e. wp- djik; hoare logic; Entity model relationship (chen)
Recall ideas of Calvin • Atomicity • Via reduction • Via guard predicates Declare m; //m==0 * m==tid Declare count; //m==0 * m==tid acquire(m); j=count; j++; count = j; release(m);
Concrete difference • Whereas Calvin goes in and sticks in asserts, and thread changes to simulate the changes of other threads and then sends the work off to a theorem prover • Calvinism has a set of axioms which do the same thing.
Conclusion • Limitations • Have to add function calls • Have to finish proof of Soundness • Potential work • Static solution to the problem of non-atomic methods. (Show rule?)