01 Introduction

01 Introduction - CS 290C Program Analysis Ben Hardekopf...

Info iconThis preview shows pages 1–10. Sign up to view the full content.

View Full Document Right Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: CS 290C Program Analysis Ben Hardekopf Fall 2011 Ben Hardekopf () CS 290C Program Analysis Fall 2011 1 / 35 Administrative Stuff Instructor : Prof. Ben Hardekopf Office Hour : Th 3–4 or by appointment Website : www.cs.ucsb.edu/ ~ benh/cs290/ On the website: Lecture slides Assignments Reading list Google group (join soon!) Grading : 7 programming assignments (weighted evenly) No exams Ben Hardekopf () CS 290C Program Analysis Fall 2011 2 / 35 Course Outline Introduction I Motivation I Course Goals I Lingo Language I Language Semantics I Abstraction Control-flow analysis Dataflow analysis and abstract interpretation Sparse analysis Adding indirection (pointers) Adding functions Type- and constraint-based analysis IMPORTANT: ask questions! Ben Hardekopf () CS 290C Program Analysis Fall 2011 3 / 35 Motivation Definition (Program Analysis) The process of automatically deriving properties about the runtime behavior of a program. Ben Hardekopf () CS 290C Program Analysis Fall 2011 4 / 35 Motivation Definition (Program Analysis) The process of automatically deriving properties about the runtime behavior of a program. Example (Optimization) Constant propagation : This variable’s value is always 5 Dead code elimination : The result of this computation is never used Ben Hardekopf () CS 290C Program Analysis Fall 2011 4 / 35 Motivation Definition (Program Analysis) The process of automatically deriving properties about the runtime behavior of a program. Example (Optimization) Constant propagation : This variable’s value is always 5 Dead code elimination : The result of this computation is never used Example (Verification) Buffer overflow : This index is always within the array bounds Sanitization : User input is never used without being sanitized Ben Hardekopf () CS 290C Program Analysis Fall 2011 4 / 35 A (very) Brief History of Program Analysis Initially motivated by higher-level languages FORTRAN introduces the “compiler”; everyone points and laughs Optimizations were the “killer app” for program analysis Ben Hardekopf () CS 290C Program Analysis Fall 2011 5 / 35 A (very) Brief History of Program Analysis Initially motivated by higher-level languages FORTRAN introduces the “compiler”; everyone points and laughs Optimizations were the “killer app” for program analysis Times have changed, but program analysis lives on: Compiler optimizations Verification and error-checking (e.g. security) Software engineering (e.g. refactoring, dependency analysis) Hardware architecture (e.g. compiling to silicon) Operating systems (e.g. Singularity) Graphics (e.g. programming for GPUs) . . . Ben Hardekopf () CS 290C Program Analysis Fall 2011 5 / 35 Types of Analysis Analyses We’ll Study Abstract Interpretation Dataflow Analysis Type-based Analysis Constraint-based Analysis (including: flow-sensitivity, context-sensitivity, pointer analysis, control-flow analysis, static single-assignment) Ben Hardekopf () CS 290C Program Analysis Fall 2011 6 / 35 Types of Analysis...
View Full Document

This note was uploaded on 12/27/2011 for the course CMPSC 290a taught by Professor Vandam during the Fall '09 term at UCSB.

Page1 / 42

01 Introduction - CS 290C Program Analysis Ben Hardekopf...

This preview shows document pages 1 - 10. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online