Static/Dynamic Analysis: Past, Present and Future Verification Grand Challenge Workshop SRI Menlo Park 22 February 2005 David Evans University of Virginia.

Slides:



Advertisements
Similar presentations
1 Verification by Model Checking. 2 Part 1 : Motivation.
Advertisements

Department of Computer Sciences Dynamic Shape Analysis via Degree Metrics Maria Jump & Kathryn S. McKinley Department of Computer Sciences The University.
3/27/ :01 PM © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
The ideal of program correctness Tony Hoare CAVSeattleAugust 2006.
Objects and Classes David Walker CS 320. Advanced Languages advanced programming features –ML data types, exceptions, modules, objects, concurrency,...
© 2006 Carnegie Mellon University Combining Predicate and Numeric Abstraction for Software Model Checking Software Engineering Institute Carnegie Mellon.
CS 31003: Compilers ANIRUDDHA GUPTA 11CS10004 G2 CLASS DATE : 24/07/2013.
The ideal of program correctness Tony Hoare BudapestSeptember 2006.
Part III Counter measures The best defense is proper bounds checking but there are many C/C++ programmers and some are bound to forget  Are there any.
David Evans CS655: Programming Languages University of Virginia Computer Science Lecture 19: Minding Ps & Qs: Axiomatic.
Using Programmer-Written Compiler Extensions to Catch Security Holes Authors: Ken Ashcraft and Dawson Engler Presented by : Hong Chen CS590F 2/7/2007.
Research Heaven, West Virginia 1 Static Analysis of Software for Autonomous Spacecrafts Supratik Mukhopadhyay Research Heaven, West.
Computer Science Patent Ideas Team JABS Group # 1 Joanne Akshay Boaz Siddharth.
CS590 Z Software Defect Analysis Xiangyu Zhang. CS590F Software Reliability What is Software Defect Analysis  Given a software program, with or without.
CODING Research Data Management. Research Data Management Coding When writing software or analytical code it is important that others and your future.
Static/Dynamic Analysis Tools Alex Aiken David Evans Dawson Engler Henny Sipma Scott McPeak Klaus Havelund Yuan Yu.
COMP 321: Introduction to Computer Systems Scott Rixner Alan L. Cox
Foundations of Programming Languages – Course Overview Xinyu Feng Acknowledgments: some slides taken or adapted from lecture notes of Stanford CS242
CS527: (Advanced) Topics in Software Engineering Overview of Software Quality Assurance Tao Xie ©D. Marinov, T. Xie.
1 Testing Concurrent Programs Why Test?  Eliminate bugs?  Software Engineering vs Computer Science perspectives What properties are we testing for? 
Introduction to Programming. Objectives Look at why we write programs Describe some things it takes to learn to be a programmer Discuss some important.
Towards Scalable Modular Checking of User-defined Properties Thomas Ball, MSR Brian Hackett, Mozilla Shuvendu Lahiri, MSR Shaz Qadeer, MSR Julien Vanegue,
Mining Windows Kernel API Rules Jinlin Yang 09/28/2005CS696.
Verification and Validation Overview References: Shach, Object Oriented and Classical Software Engineering Pressman, Software Engineering: a Practitioner’s.
David Evans Turing Machines, Busy Beavers, and Big Questions about Computing.
Programming Models & Runtime Systems Breakout Report MICS PI Meeting, June 27, 2002.
Introduction to CS 270 Math Foundations of CS Verification of Computer Systems Jeremy Johnson Drexel University.
The Changing Nature of Invention in Computer Science Dennis Shasha Based on two books with journalist Cathy Lazere.
Let’s Stop Beating Dead Horses, and Start Beating Trojan Horses! David Evans INFOSEC Malicious Code Workshop San Antonio, 13.
ROBOTICS BY: HUSSAIN MURAD. WHAT IS THE FIRST THING YOU THINK OF WHEN YOU THINK OF A ROBOT? When I think of robots, the first thing that pops into mind.
A Research Agenda for Scientific Foundations of Security David Evans University of Virginia NITRD Post-Oakland Program 25 May 2011 Artwork: Giacomo Marchesi.
David Evans These slides: Introduction to Static Analysis.
Fall 2010 UVa David Evans cs2220: Engineering Software Class 28: Past and Future.
1CPSD Software Infrastructure for Application Development Laxmikant Kale David Padua Computer Science Department.
Computer Programming 2 Why do we study Java….. Java is Simple It has none of the following: operator overloading, header files, pre- processor, pointer.
David Evans The Bugs and the Bees Research in Swarm Programming and Security University of Virginia.
Chapter 1 Introduction. Chapter 1 - Introduction 2 The Goal of Chapter 1 Introduce different forms of language translators Give a high level overview.
CS 460/660 Compiler Construction. Class 01 2 Why Study Compilers? Compilers are important – –Responsible for many aspects of system performance Compilers.
3.2 Semantics. 2 Semantics Attribute Grammars The Meanings of Programs: Semantics Sebesta Chapter 3.
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
1 Splint: A Static Memory Leakage tool Presented By: Krishna Balasubramanian.
(A Somewhat Self-Indulgent) Splint Retrospective David Evans University of Virginia 25 October 2010.
High Confidence Software and Systems HCMDSS Workshop Brad Martin June 2, 2005.
Inculcating Invariants in Introductory Courses David Evans and Michael Peck University of Virginia ICSE 2006 Education Track Shanghai, 24 May
David Evans CS200: Computer Science University of Virginia Computer Science Lecture 22: Objects I invented the term Object-
Software Development Introduction
David Evans CS201j: Engineering Software University of Virginia Computer Science Lecture 9: Designing Exceptionally.
© Andrew IrelandGrand Challenges for Computing Research 2004 The Verifying Compiler Andrew Ireland Dependable Systems Group School of Mathematical & Computer.
Writing Secure Programs. Program Security CSCE Farkas/Eastman - Fall Program Flaws Taxonomy of flaws: how (genesis) when (time) where (location)
David Evans The Bugs and the Bees Research in Programming Languages and Security University of.
David Evans CS150: Computer Science University of Virginia Computer Science Lecture 22: Objectifying Objects.
On Concurrency Idioms and their Effect on Program Analysis Weizmann Institute of Science Guy Katz and David Harel.
Computer Software engineer By: Eric Musser. What is This? Computer engineers make programs to run a computer. Computer engineers make programs to run.
Hardware Trends CSE451 Andrew Whitaker. Motivation Hardware moves quickly OS code tends to stick around for a while “System building” extends way beyond.
Cs205: engineering software university of virginia fall 2006 David Evans Object-Oriented Programming.
Programming 2 Intro to Java Machine code Assembly languages Fortran Basic Pascal Scheme CC++ Java LISP Smalltalk Smalltalk-80.
CS 5150 Software Engineering Lecture 21 Reliability 2.
Quick Survey Results UCT Department of Computer Science Computer Science 1015F Hussein Suleman March 2009.
Static/Dynamic Analysis: Past, Present and Future
Emerging technologies
Class 22: Inheritance CS150: Computer Science University of Virginia
Verification and Validation Overview
Turing Machines, Busy Beavers, and Big Questions about Computing
The Future of Software Engineering: Tools
Foundations of Programming Languages – Course Overview
CSCE 315 – Programming Studio, Fall 2017 Tanzir Ahmed
University of Gujrat Department of Computer Science
Machine Learning Course.
The Purpose of this Course
Lecture 19: Proof-Carrying Code Background just got here last week
Presentation transcript:

Static/Dynamic Analysis: Past, Present and Future Verification Grand Challenge Workshop SRI Menlo Park 22 February 2005 David Evans University of Virginia Computer Science

Static/Dynamic Analysis2 The Past: Trends Lines of Source Code FL Proofs LCLint Splint “Loss of Ambition” “Faster Machines”

Static/Dynamic Analysis3 The Present Microsoft PREfix/fast, SLAM  SDV ASTRÉE (Cousot) – Airbus A380

Static/Dynamic Analysis4 The Present Static Analysis: good at checking generic requirements (types, buffer overflows, …) Dynamic Analysis: good at checking assertions inserted by programmer Bad at knowing what properties to check –Automatic inference techniques –Grand Challenge Repository No good techniques for combining static and dynamic analyses

Static/Dynamic Analysis5 The Future: Predictions for Software vendor will lose a major lawsuit because of a program bug 2.Someone will come up with a cool name like “VerXifiedProgramming” and sell a lot of books on program verification 3.No more buffer overflows in major commercial software –Brian Snow at 20 th Oakland conference predicted we will still be talking about buffer overflows in 2019

Static/Dynamic Analysis6 Predictions for Standard compilers prevent most concurrency problems 5.Programmers will still make dumb mistakes and resist change 6.“Good” CS degree programs will: –Incorporate verification into their first course –Include a course on identifying and checking program properties

Static/Dynamic Analysis7 Making Predictions Never make predictions, especially about the future. – Casey Stengel The best way to predict the future is to invent it. – Alan Kay, 1971 Our plan and our hope was that the next generation of kids would come along and do something better than Smalltalk around 1984 or so… But a variety of different things conspired together, and that next generation actually didn’t show up. – Alan Kay, 2005