Introduction to Static Analysis: An Abstract Interpretation Perspective