Static Detection of Software Errors: Precise and Scalable Algorithms for Automatic Detection of Software Errors