Benefits of Constraint based analysis
Separates analysis specification from implementation
Analysis writer can focus on what rather than how
Yields natural program specification
Enables sophisticated analysis implementations
What does the user need to decide when using constraint based analysis?
Specification, not implementation
Datalog
declarative logic programming language
not turing complete
subset of prolog or sql
Datalog Program, what needs to be defined at a high level?
Input relations = form of input to program
Output relations = form of output to program
Rules = rules of inference that compute the input from output
Reaching Definitions Analysis
OUT[n] = (IN[n]-KILL[n]) U GEN[n] IN[n] = U OUT[n'] where n' is predecessor n