COP 5021 meeting -*- Outline -*- * The Nature of Program Analysis (1.1) ** goals Q: What are the goals of program analysis? ------------------------------------------ GOALS OF PROGRAM ANALYSIS ------------------------------------------ ... "predicting safe and compatible approximations to the set of values or behaviors arising dynamically" - avoiding redundant computations - avoiding superfluous computations - software validation ** ideas Q: What are the main ideas of program analysis? ------------------------------------------ MAIN IDEAS ------------------------------------------ ... - providing approximate answers (a larger set of possible behaviors) - safe (over)approximations (all actual behaviors included) - semantics based (prove correct with respect to language's semantics) Q: What's the difference between a semantics-based approach and a semantics-directed approach? Semantics-based uses the semantics (for soundness proofs), but doesn't structure the analysis based on the form of the semantics, as does the semantics-directed approach. ** applications Q: What other areas, besides optimizing compilers, could the ideas and goals of program analysis usefully be applied? interpreters (e.g., database query languages) scripting (e.g., Flash, Matlab, web pages, JSP, ASP) graphics/VR engines security (vulnerability checking, assurance, information flow,...) network protocols specification/verification, cryptography finding bugs highlighting or displays for IDEs, debugging support refactoring gaming languages