Springer Principles of Program Analysis