SMS: Principles program analysis.