Program Analysis and Design - Part 2