What does soundness mean?
Soundness = no false negatives
(A false negative is a missed bug in the code by the program analysis, i.e., the analysis
did not emit a warning for an existing bug)
What does completeness mean?
Completeness = no false positives
(A false positive is a warning emitted by the program analysis for code that is correct)
What does precision mean?
Precision = trying to minimize incompleteness
Sound static analysis is…
Test-case generation is…
Over-approximation is…
Under-approximation is…
What are the pros of impresice static analysis?
It is typically faster
What happens with rising precision in static analysis?
It becomes slower
What can static analysis prove?
Absence of null pointer dereferences
Assertions at a program point
Termination
Absence of data races
Information flow
What are abstract domains and what do they do?
Abstract domains = standard abstractions for building abstract interpreters
-> They abstract program data, basic operations, and control
What is an abstract program state?
Abstract program state = a map from program variables to elements in the
abstract domain
What is an abstract transformer?
Abstract transformer = describes the effect of statement and expression
evaluation on an abstract state
What do we get when iterating the transformers over the domain?
To obtain an over-approximation
-> We iterate until we reach a fixed point, which is the over-approximation of the program
What happens if the over-approximation is correct?
If the over-approximation is correct, then the program must be correct
What is the primary scope of abstract transformers?
What do abstract transformers define?
Which claims can bounded model checking prove?
Array bound checks (that is, buffer overflow)
Division by zero
Pointer checks (that is, NULL pointer dereference)
Arithmetic overflow
User-provided assertions (for example, assert i < j)
What are special “unrolling assertions or assumptions“ used for? What happens if they hold?
To check if the analysis remains sound:
-> If the unrolling assertions/assumptions hold, the analysis is sound
Which of the following statements is true?
Which statements are true?
Which of the following statements are true?
Which of the following statement are true?
Last changed7 days ago