Program Analysis: Theory and Practice



Similar documents
Fundamentals of Programming Languages

Rigorous Software Development CSCI-GA

Model Checking: An Introduction

CS422 - Programming Language Design

EE360: Digital Design I Course Syllabus

MKTG , Marketing Research and Information Technology Course Syllabus, Spring :30-11:00 a.m. MW

EE411: Introduction to VLSI Design Course Syllabus

Finance 471: DERIVATIVE SECURITIES Fall 2015 Prof. Liang Ma University of South Carolina, Moore School of Business

Testing & Verification of Digital Circuits ECE/CS 5745/6745. Hardware Verification using Symbolic Computation

INFS5873 Business Analytics. Course Outline Semester 2, 2014

After completing SI- 539, students will have a working personal portfolio website in production.

IT 101 Introduction to Information Technology

The Course.

Alabama Department of Postsecondary Education. Representing The Alabama Community College System

The course assumes successful completion of CSCI E-50a and CSCI E-50b, i.e. at least two semesters of programming, with a grade of C- or better.

TMGT W Principles of Cost Engineering Course Syllabus: Spring 2013 Online ecollege Course

GEOL 101: Introduction to Geology

The 10 step communication plan

CLASS PARTICIPATION: MORE THAN JUST RAISING YOUR HAND

AGEC $424$ Syllabus. Financial Management of Agricultural Businesses

The world is a complex place, and. requires that we learn how to. imagine its full potential.

4.1. Title: data analysis (systems analysis) Annotation of educational discipline: educational discipline includes in itself the mastery of the

CS 1361-D10: Computer Science I

Online Basic Statistics

Mathematics 220, Spring 2014 Multivariable Calculus

Syllabus. Finance 367: Investment Management

Why study Operating Systems? CS 372. Why study. Why study. Introduction to Operating Systems

School of Business and Nonprofit Management Course Syllabus

DePaul University School of Accountancy and MIS ACC Online

University of Minnesota Economics , Summer 2013 Major Project Seminar

Course Goals: Have science and engineering majors able to translate the theoretical concepts of Chemistry into concrete terms.

Social Psychology PSY Syllabus Fall

General Psychology. Professor. Course Description. Course Objectives. Accommodations. PSY 201 (10544, 10545) Fall 2013 M/W 4:00 5:50 ITC 211

Specification and Analysis of Contracts Lecture 1 Introduction

Introduction to Static Analysis for Assurance

CJS 101: Introduction to Criminal Justice Sciences

Life Cycle Product Management EGR Special Topics in Engineering. Course Overview

INFO & 090 Business Data Communications and Information Security Fall 2014

This material is intended for use by undergraduate students who are contemplating taking a course with me.

MATHEMATICAL TOOLS FOR ECONOMICS ECON FALL 2011

SYLLABUS: MKT , Monday evening 4:00-6:30pm; BU124 Spring Semester, 2012

SCHOOL OF MANAGEMENT

Fall 2012 Q530. Programming for Cognitive Science

CASPER COLLEGE COURSE SYLLABUS

INF 203: Introduction to Network Systems (3 credit hours) Spring W1, Class number 9870

FYS Life Maps JACKSON COMMUNITY COLLEGE 1/10 through 2/23/2012 WINTER 2012

COURSE SYLLABUS MGMT 3313 HUMAN RESOURCE MANAGEMENT Spring 2015

Teaching Online at UD Best Practices Guide

A Brief Introduction to Static Analysis

Management 3050 Y Human Resource Management

BUS 3525 Strategic Management Online

Programming Languages

PETITION/PROGRAM SHEET Degree: Bachelor of Science Major: Computer Science

HOST Hospitality Marketing Professor Dave P. Evans PhD, CHE - Ōlapa 120 Marketing for Hospitality & Tourism Course Description

CSCI 5312/4312: Health Informatics. Syllabus

Strategic Use of Information Technology (CIS ) Summer /

The University of Texas at Austin Department of Civil, Architectural and Environmental Engineering

A Static Analyzer for Large Safety-Critical Software. Considered Programs and Semantics. Automatic Program Verification by Abstract Interpretation

HRM 386 HUMAN RESOURCE MANAGEMENT Spring, 2008

Modern Binary Exploitation Course Syllabus

CS 425 Software Engineering

Finite Element Analysis in Mechanical Engineering Design. Summer 2015 (Online)

Introduction to Database Systems CS4320. Instructor: Christoph Koch CS

GGR462/JPG1914: GIS RESEARCH PROJECT. Course Outline

MATHEMATICAL TOOLS FOR ECONOMICS ECON SPRING 2012

Automated Theorem Proving - summary of lecture 1

College Success Online Course Syllabus

Online Student Orientation

EECS : Formal Methods for Engineering Education. Sanjit A. Seshia EECS, UC Berkeley

Computer Science Theory. From the course description:

Course: ISYS 4373 Application Development with Java Prerequisite: ISYS 3293

MAN 4802 Entrepreneurship/Small Business Management Online. Fall 2012

IT 415 Information Visualization Spring Semester

CHEM 122, Spring 2015 Great Basin College Dr. David Freistroffer

MKTG3000: Mobile Marketing and Analytics

Political Science 1336 American Government I U.S. and Texas Constitutions and Politics FALL 2009

Diagnostic Coding OST 148 OL1 Fall Semester 2015 Class hours: Online

Truman College-Mathematics Department Math 125-CD: Introductory Statistics Course Syllabus Fall 2012

MTH (seated)/277 V01 (online): Vector Calculus, Fall 2015

CS 341: Foundations of Computer Science II elearning Section Syllabus, Spring 2015

Principles of Entrepreneurship

BRAZOSPORT COLLEGE LAKE JACKSON, TEXAS SYLLABUS ACNT 2311: MANGERIAL ACCOUNTING ONLINE VERSION COMPUTER TECHNOLOGY & OFFICE ADMINISTRATION DEPARTMENT

Classroom Management & Instruction EDU 163-OL1

The University of Texas at Austin School of Social Work SOCIAL WORK STATISTICS

SYLLABUS Writing a Research Paper ENG 1000 AA01 LEARNING CENTER

Resource Economics 212: Introductory Statistics for the Social Sciences Spring 2014

Transcription:

Introductions Program Analysis: Theory and Practice Who am I? About you? What do you want to get out of this class? Evan Chang Meeting 1: Welcome CSCI 7135, Fall 2010 http://www.cs.colorado.edu/~bec/courses/csci7135-f10/ 2 Administrivia Website http://www.cs.colorado.edu/~bec/courses/csci7135-f10/ readings, slides, assignments, etc. Moodle discussion forums, assignment submission Office hours MW 5:15-6:15 and by appointment ECOT 621 Today Some context and motivation Program analysis in a nutshell Goals for this course Requirements and grading Course summary Convince you that program analysis is cool and exciting! 3 4 Meta-Level Information Please interrupt at any time! It s completely ok to say: I don t understand. Please say it another way. Slow down! Wait, I want to read that! Discussion, not lecture No Useless Memorization I will not waste your time with useless memorization This course will cover complex subjects I will teach their details to help you understand them the first time But you will never have to memorize anything low-level Rather, learn to apply broad concepts 5 6 1

Discussion: What is Program Analysis? What is Program Analysis? Static Program Analysis? Dynamic Program Analysis? 7 8 Is Program Analysis Useful? How is it used? Is Program Analysis Useful? How is it used? 9 10 Big Motivation: Software Quality 12 2

Big Motivation: Software Quality Software errors cost a lot Windows Blue Screen of Death Ariane 5 Flight 501 13 ~$60 billion annually (~0.5% of US GDP) > > 2002 National Institute of Standards and Technology report total annual revenue of 10x annual budget of But there s hope in program analysis Microsoft uses and distributes the Static Driver Verifier Airbus applies the Astrée Static Analyzer Companies, such as Coverity and Fortify, market static source code analysis tools Because program analysis can eliminate entire classes of bugs For example, Reading from a closed file: read( ); Reacquiring a locked lock: How? Systematically examine the program Simulate running program on all inputs Automated code review acquire( ); Program analysis by example: Checking for double acquires Simulate running program on all inputs // x now points to an unlocked lock acquire(x); analysis code state Program analysis by example: Checking for double acquires Simulate running program on all inputs // x now points to an unlocked lock in a linked list ideal analysis state or or or x acquire(x); x x acquire(x); x 3

Uh oh! Rice s Theorem: Any non-trivial property of programs is undecidable Should we go home then? 19 Abstract! // x now points to an unlocked lock in a linked list x x acquire(x); ideal analysis state or or or x analysis state Abstract Interpretation [Cousot and Cousot 1977] x Abstractions Examples? Abstractions Examples? 21 22 Challenges in Designing Static Analyses Challenges in Designing Static Analyses 23 24 4

Goal 1 Learn to build program analyses Goals 26 Goal 2 Grok the theory behind correct program analyses denotation abstract semantics Exp σ ( ) A γ abstract domain abstraction function for sets α Goal 3 Understand current PL research (POPL, PLDI, OOPSLA, TOPLAS, ) C P(C) ( ) concretization function 27 28 Most Important Goal Have Lots of Fun! Requirements 29 5

Prerequisites Programming experience building analyses in OCaml ideal: undergraduate compilers (e.g., CSCI 4555) Mathematical maturity basic logic ideal: programming language semantics (e.g., CSCI 5535) Assignments Reading and participation (each meeting) Homeworks (Possible) Presentation of Papers Final project Not strict. If concerned, please see me. 31 32 Reading and Participation ~2 papers/book chapter, each meeting Spark class discussion, post/bring questions Online discussion Post 1 substantive comment, question, or answer for each lecture On csci7135-f10.blogspot.com Due before the next meeting 33 What is substantive? May be less than a standard blog post but more than a tweet. Some examples: Questions Thoughtful answers Clarification of some point What you think is the main point in the reading set. An idea of how some work could be improved Comments on a related web resource related Intent: take a moment to reflect on the day s reading/discussion (not to go scour the web) 34 Homework Homework First half of the semester only Collaborate with peers (but acknowledge!) Final Project Implement an advanced abstract domain and apply your analysis Write a ~5-8 page paper (conference-like) Give a ~15-20 minute presentation 35 36 6

Academic Dishonesty Don t do it! See CU Honor Code Course Summary 37 Course At-A-Glance Part I: Program Analysis Foundations Interleave implementation and theory Textbook: Nielson et al. Principles of Program Analysis. Other notes and papers Part II: Research Applications Possible Special Topics Software model checking Shape analysis Symbolic/concolic execution What do you want to hear about? 39 40 Next Time Guest lecture by Xavier Rival on the Astrée Static Analyzer Read the paper on Astrée see the website under Schedule Next Mon: Model Checking Verify properties or find bugs in software Take an important program (e.g., a device driver) Merge it with a property (e.g., no deadlocks) Transform the result into a boolean program Use a model checker to exhaustively explore the resulting state space Result 1: program provably satisfies property Result 2: program violates property right here on line 92,376! Also: Overview Talk, Tue 11-12, ECOT 831 41 42 7

Remember Join the course moodle and introduce yourself on the blog Write a few sentences on why you are taking this course 43 8