CS6340 EXAM QUESTIONS AND
ANSWERS GRADED A+ 2026
Program Analysis - ANS Process of automatically discovering useful facts about programs
(programming errors, security vulnerabilities)
Types of Program Analysis - ANS Dynamic
Static
Hybrid
Dynamic Analysis - ANS Runtime analyses, discover info by running program and observing
behavior
Static Analysis - ANS Compile time analyses, discover info by inspecting source code or binary
code
Hybrid Analysis - ANS Combine dynamic and static analyses
Dynamic Analysis Examples - ANS Array bound checking (Purify)
Datarace detection (Eraser)
Memory leak detection (Valgrind)
@COPYRIGHT 2026/2027 ALLRIGHTS RESERVED 1
, Finding likely invariants (Daikon)
Static Analysis Examples - ANS Suspicious error patterns (Lint, FindBugs, Coverity)
Memory Leak Detection (Facebook infer)
Checking API Usage Rules (Microsoft SLAM)
Verifying Invariants (ESC/Java)
Invariant - ANS Program fact that is true in every run of the program
Control Flow Graph - ANS Static analysis
Intermediate representation of a program
Summarizes flow of control in all possible runs of the program
Soundness vs Completeness - ANS Sound = No false negatives
Complete = No false positives
Consumers of Program Analysis - ANS Compilers
Software Quality Tools
Integrated Development Environments (IDEs)
Software Quality Tools - ANS Testing
Debugging
Verification
Dynamic vs Static Analysis Costs - ANS Dynamic = Proportional to program execution time
@COPYRIGHT 2026/2027 ALLRIGHTS RESERVED 2
ANSWERS GRADED A+ 2026
Program Analysis - ANS Process of automatically discovering useful facts about programs
(programming errors, security vulnerabilities)
Types of Program Analysis - ANS Dynamic
Static
Hybrid
Dynamic Analysis - ANS Runtime analyses, discover info by running program and observing
behavior
Static Analysis - ANS Compile time analyses, discover info by inspecting source code or binary
code
Hybrid Analysis - ANS Combine dynamic and static analyses
Dynamic Analysis Examples - ANS Array bound checking (Purify)
Datarace detection (Eraser)
Memory leak detection (Valgrind)
@COPYRIGHT 2026/2027 ALLRIGHTS RESERVED 1
, Finding likely invariants (Daikon)
Static Analysis Examples - ANS Suspicious error patterns (Lint, FindBugs, Coverity)
Memory Leak Detection (Facebook infer)
Checking API Usage Rules (Microsoft SLAM)
Verifying Invariants (ESC/Java)
Invariant - ANS Program fact that is true in every run of the program
Control Flow Graph - ANS Static analysis
Intermediate representation of a program
Summarizes flow of control in all possible runs of the program
Soundness vs Completeness - ANS Sound = No false negatives
Complete = No false positives
Consumers of Program Analysis - ANS Compilers
Software Quality Tools
Integrated Development Environments (IDEs)
Software Quality Tools - ANS Testing
Debugging
Verification
Dynamic vs Static Analysis Costs - ANS Dynamic = Proportional to program execution time
@COPYRIGHT 2026/2027 ALLRIGHTS RESERVED 2