Analyzing Programs