Differential Symbolic Execution
|
|
- Beryl Oliver
- 6 years ago
- Views:
Transcription
1 Differential Symbolic Execution Suzette Person, Matthew B. Dwyer, Sebastian Elbaum University of Nebraska Lincoln Corina Păsăreanu NASA Ames Research Center Funded in part by the National Science Foundation and NASA EPSCoR 1
2 Motivation Locate and fix faults Refactor code Extend functionality Merge versions 2
3 Motivation 3
4 Motivation 4
5 Differential Symbolic Execution (DSE) Detect and characterize the effects of program changes in terms of behavioral differences between program versions Symbolic Execution + Over-approximating Symbolic Summaries 5
6 Differential Symbolic Execution (DSE) No functional differences found. OK Validate Refactoring 6
7 Overview of Presentation DSE methodology Summaries of program behavior Notions of equivalence and deltas Applications of DSE Related work Conclusions and future work 7
8 Symbolic Execution int m(int y){ 1: if (y > 0) 2: y++; 3: else 4: y--; 5: return y; } m sum = {(Y > 0, RETURN==Y+1)} 8
9 Symbolic Execution int m(int y){ 1: if (y > 0) 2: y++; 3: else 4: y--; 5: return y; } m sum = {(Y > 0, RETURN==Y+1), RETURN==Y+1)} (!(Y > 0), RETURN==Y-1)} 9
10 Differential Symbolic Execution m Δ m m m Δm m 10
11 Differential Symbolic Execution 11
12 Incomplete Summaries It is not always possible to compute complete summaries Non-linear arithmetic Loops and recursion Actual Program Behaviors Summary Incomplete 12
13 Incomplete Summaries Program Summary Is all of the input space accounted for by the summary? Actual Program Behaviors 13
14 Incomplete Summaries m sum = {(i 1, e 1 ),(i 2, e 2 ), (i 3,e 3 )} Program Summary Is the disjunction of inputs valid? Actual Program Behaviors i 1 V i 2 V i 3 14
15 Incomplete Summaries Explicitly define the input space covered by the summary i 1 V i 2 V i 3 Program Behaviors 15
16 Incomplete Summaries Focus subsequent analysis tool on behaviors not covered Program Behaviors![i 1 V i 2 V i 3 ] 16
17 Abstract Summaries on Common Blocks void test(){ //v1 s 1 ; s 2 ; for (int i=0; i<len; i++;){ val = val + x[i]; } old = val; s n ; } Abstract Summary Read set:{x,val} Write set:{val,old} void test(){ //v2 s a ; s b ; for (int i=0; i<len; i++;){ val = val + x[i]; } old = val; s m ; } Boolean IP B (int[] X, int val) int old B (int[] X, int val) int val B (int[] X, int val) 17
18 Abstract Summaries on Common Blocks void test(){ //v1 s 1 ; s 2 ; for (int i=0; i<len; i++;){ val = val + x[i]; } old = val; s n ; } Standard Symbolic Execution Instantiate abstract summary Standard Symbolic Execution IP B (x,val) old == old B (x,val) val== val B (x,val) 18
19 Functional Equivalence m Δ m m m Δm m 19
20 Functional Equivalence m sum = {(Y > 0, RETURN==Y+1), (!(Y > 0), RETURN==Y-1)} m sum = (Y > 0 Λ RETURN==Y+1) V (!(Y > 0) Λ RETURN==Y-1) 20
21 Functional Equivalence int m(int y){//v1 1: if (y > 0) 2: y++; 3: else 4: y--; 5: return y; } ((Y > 0 Λ RETURN==Y+1) V (!(Y > 0) Λ RETURN==Y-1))? int m(int y){//v2 1: if (y <= 0) 2: y--; 3: else 4: y++; 5: return y; } ((Y <= 0 Λ RETURN==Y-1) V (!(Y <= 0) Λ RETURN==Y+1)) Functionally Equivalent? 21
22 Functional Deltas Δm =m Λ m Δm = m Λ m m m m m 22
23 Partition-effects Equivalence m m 23
24 Partition-effects Delta m m Δm 24
25 Application of DSE Prototype based on Symbolic PathFinder (JPF) & CVC3 theorem prover Applied to artifacts from SIR JMeter Siena Client applications Refactoring assurance Test suite evolution Change characterization 25
26 Change Characterization //Siena version 3 public static boolean match(byte[] x, byte[] y){ if (x.len!= y.len) return false; for(int i=0; i<x.len; ++i) if (x[i]!= y[i]) return false; return true; } //Siena version 4 public static boolean match(byte[] x, byte[] y){ if (x == null && y == null) return true; if (x == null y ==null x.len!= y.len) return false; for(int i=0; i<x.len; ++i) if (x[i]!= y[i]) return false; return true; } 26
27 Input Partition X==null Y==null Change Characterization!(X==null) Λ!(Y==null) Λ (X.l!=Y.l)!(X==null) Λ!(Y==null) Λ (X.l!=Y.l) Λ IP B1 (T, X, Y) X==null Λ Y==null X==null Λ!(Y==null)!(X==null) Λ Y==null!(X==null) Λ!(Y==null) Λ (X.l!=Y.l)!(X==null) Λ!(Y==null) Λ (X.l!=Y.l) Λ IP B1 (T, X, Y) match() Version 3 Effect match() Version 4 RETURN == EXCEPTION RETURN == EXCEPTION RETURN == FALSE RETURN == RET B1 (T, X, Y) RETURN == TRUE RETURN == FALSE RETURN == FALSE RETURN == FALSE RETURN == RET B1 (T, X, Y) 27
28 Change Characterization On input match() Version 3 match() Version 4 x == null Λ y == null throws NRE RETURN == TRUE x == null Λ y!=null throws NRE RETURN == FALSE x!= null Λ y == null throws NRE RETURN == FALSE 28
29 Related Work Jackson et al. (ICSM 94) Neamtiu et al. (MSR 05) Apiwattanapong et al. (ASE 07) Santelices et al., Apiwattanapong et al. (ASE 08, TAIC PART 06) Siegel et al. (ISSTA 06, PVM/MPI 08) Notkin (PASTE 02) 29
30 Conclusion Differential symbolic execution precisely detects and characterizes behavioral differences between two program versions Functional equivalence and deltas Partition-effects equivalence and deltas DSE leverages program commonalities to address summary completeness 30
31 Future Work Further explore DSE algorithms and extend theoretical foundations Automate support for client applications Study the cost and effectiveness of DSE in automating software maintenance tasks 31
32 Differential Symbolic Execution Suzette Person, Matthew B. Dwyer, Sebastian Elbaum University of Nebraska Lincoln Corina Păsăreanu NASA Ames Research Center Funded in part by the National Science Foundation and NASA EPSCoR 32
Automatic Extraction of Abstract- Object-State Machines Based on Branch Coverage
Automatic Extraction of Abstract- Object-State Machines Based on Branch Coverage Hai YUAN Tao XIE Department of Computer Science North Carolina State University hyuan3@ncsu.edu xie@csc.ncsu.edu Agenda
More informationCompositional Symbolic Execution through Program Specialization
Compositional Symbolic Execution through Program Specialization José Miguel Rojas 1 and Corina Păsăreanu 2 1 Technical University of Madrid, Spain 2 CMU-SV/NASA Ames, Moffett Field, CA, USA BYTECODE 2013
More informationTest Advising Framework
University of Nebraska - Lincoln DigitalCommons@University of Nebraska - Lincoln Computer Science and Engineering: Theses, Dissertations, and Student Research Computer Science and Engineering, Department
More informationSymDiff: A language-agnostic semantic diff tool for imperative programs
SymDiff: A language-agnostic semantic diff tool for imperative programs Shuvendu K. Lahiri 1, Chris Hawblitzel 1, Ming Kawaguchi 2, and Henrique Rebêlo 3 1 Microsoft Research, Redmond, WA, USA 2 University
More informationFault, Error, and Failure
Fault, Error, and Failure Testing, Quality Assurance, and Maintenance Winter 2018 Prof. Arie Gurfinkel based on slides by Prof. Lin Tan and others Terminology, IEEE 610.12-1990 Fault -- often referred
More informationInput Space Partitioning
Input Space Partitioning Instructor : Ali Sharifara CSE 5321/4321 Summer 2017 CSE 5321/4321, Ali Sharifara, UTA 1 Input Space Partitioning Introduction Equivalence Partitioning Boundary-Value Analysis
More informationAutomated Test-Input Generation
Automated Test-Input Generation Tao Xie North Carolina State University Department of Computer Science Nov 2005 http://www.csc.ncsu.edu/faculty/xie/ Why Automate Testing? Software testing is important
More informationSoftware verification and testing, software evolution, program analysis, and formal methods.
GUOWEI YANG Assistant Professor Department of Computer Science Texas State University 601 University Drive, San Marcos, TX 78666 +1 (512) 245-2469 gyang@txstate.edu RESEARCH INTERESTS Software verification
More informationDomains: Move, Copy & Co
1 (20) Domains: Move, Copy & Co School of Engineering Sciences Program construction in C++ for Scientific Computing 2 (20) Outline 1 2 3 4 5 3 (20) What Do We Already Have A class hierarchy for constructing
More informationIntroduction. Easy to get started, based on description of the inputs
Introduction Testing is about choosing elements from input domain. The input domain of a program consists of all possible inputs that could be taken by the program. Easy to get started, based on description
More informationGetting started with Java
Getting started with Java by Vlad Costel Ungureanu for Learn Stuff Programming Languages A programming language is a formal constructed language designed to communicate instructions to a machine, particularly
More informationA Brief Introduction to Standard ML
A Brief Introduction to Standard ML Specification and Verification with Higher-Order Logic Arnd Poetzsch-Heffter (Slides by Jens Brandt) Software Technology Group Fachbereich Informatik Technische Universität
More informationAutomatically Generating Refactorings to Suppport API Evolution
Automatically Generating Refactorings to Suppport API Evolution MIT CSAIL Page 1 Outline Library evolution Libraries evolve Clients often don t track library changes Contributions Mechanism to automatically
More informationESc101 : Fundamental of Computing
ESc101 : Fundamental of Computing I Semester 2008-09 Lecture 37 Analyzing the efficiency of algorithms. Algorithms compared Sequential Search and Binary search GCD fast and GCD slow Merge Sort and Selection
More informationBirkbeck (University of London) Software and Programming 1 In-class Test Mar 2018
Birkbeck (University of London) Software and Programming 1 In-class Test 2.1 22 Mar 2018 Student Name Student Number Answer ALL Questions 1. What output is produced when the following Java program fragment
More informationChapter 1 Programming: A General Overview
Introduction Chapter 1 Programming: A General Overview This class is an introduction to the design, implementation, and analysis of algorithms. examples: sorting large amounts of data organizing information
More informationStructured Data. CIS 15 : Spring 2007
Structured Data CIS 15 : Spring 2007 Functionalia HW4 Part A due this SUNDAY April 1st: 11:59pm Reminder: I do NOT accept LATE HOMEWORK. Today: Dynamic Memory Allocation Allocating Arrays Returning Pointers
More informationSorting. Task Description. Selection Sort. Should we worry about speed?
Sorting Should we worry about speed? Task Description We have an array of n values in any order We need to have the array sorted in ascending or descending order of values 2 Selection Sort Select the smallest
More informationCS 351 Design of Large Programs Programming Abstractions
CS 351 Design of Large Programs Programming Abstractions Brooke Chenoweth University of New Mexico Spring 2019 Searching for the Right Abstraction The language we speak relates to the way we think. The
More informationCSC Java Programming, Fall Java Data Types and Control Constructs
CSC 243 - Java Programming, Fall 2016 Java Data Types and Control Constructs Java Types In general, a type is collection of possible values Main categories of Java types: Primitive/built-in Object/Reference
More informationStandard Version of Starting Out with C++, 4th Edition. Chapter 6 Functions. Copyright 2003 Scott/Jones Publishing
Standard Version of Starting Out with C++, 4th Edition Chapter 6 Functions Copyright 2003 Scott/Jones Publishing Topics 6.1 Modular Programming 6.2 Defining and Calling Functions 6.3 Function Prototypes
More informationChapter 1 Programming: A General Overview
Chapter 1 Programming: A General Overview 2 Introduction This class is an introduction to the design, implementation, and analysis of algorithms. Examples: sorting large amounts of data organizing information
More informationEnvironment Modeling for Modular Software Analysis with Java PathFinder Part 1
Environment Modeling for Modular Software Analysis with Java PathFinder Part 1 Oksana Tkachuk SGT/NASA Ames oksana.tkachuk@nasa.gov Peter Mehlitz SGT/NASA Ames peter.c.mehlitz@nasa.gov Software Model Checking
More informationLecture 17. For Array Class Shenanigans
Lecture 17 For Array Class Shenanigans For or While? class WhileDemo { public static void main(string[] args){ int count = 1; while (count < 11) { System.out.println("Count is: " + count); count++; Note:
More information1. A Remote Proxy helps to hide all the low-level details of exception handling from the proxy Client.
UML diagrams for the design patterns mentioned in the exam are provided at the end of the exam. For some questions the details of the diagram structure will be useful. For other questions, the details
More informationThe story so far. Elements of Programming Languages. Pairs in various languages. Pairs
Elements of Programming Languages Lecture 6: Data structures James Cheney University of Edinburgh October 9, 2017 The story so far We ve now covered the main ingredients of any programming language: Abstract
More informationCUTE: A Concolic Unit Testing Engine for C
CUTE: A Concolic Unit Testing Engine for C Koushik Sen Darko Marinov Gul Agha University of Illinois Urbana-Champaign Goal Automated Scalable Unit Testing of real-world C Programs Generate test inputs
More informationProgram Verification (6EC version only)
Program Verification (6EC version only) Erik Poll Digital Security Radboud University Nijmegen Overview Program Verification using Verification Condition Generators JML a formal specification language
More informationSpecification, Verification, and Interactive Proof
Specification, Verification, and Interactive Proof SRI International May 23, 2016 PVS PVS - Prototype Verification System PVS is a verification system combining language expressiveness with automated tools.
More informationAn Empirical Comparison of Automated Generation and Classification Techniques for Object-Oriented Unit Testing
An Empirical Comparison of Automated Generation and Classification Techniques for Object-Oriented Unit Testing Marcelo d Amorim (UIUC) Carlos Pacheco (MIT) Tao Xie (NCSU) Darko Marinov (UIUC) Michael D.
More informationMutual Summaries: Unifying Program Comparison Techniques
Mutual Summaries: Unifying Program Comparison Techniques Chris Hawblitzel 1, Ming Kawaguchi 2, Shuvendu K. Lahiri 1, and Henrique Rebêlo 3 1 Microsoft Research, Redmond, WA, USA 2 University of California,
More informationCOS 126 General Computer Science Spring Written Exam 1
COS 126 General Computer Science Spring 2017 Written Exam 1 This exam has 9 questions (including question 0) worth a total of 70 points. You have 50 minutes. Write all answers inside the designated spaces.
More informationSoftware Testing. Lecturer: Sebastian Coope Ashton Building, Room G.18
Lecturer: Sebastian Coope Ashton Building, Room G.18 E-mail: coopes@liverpool.ac.uk COMP 201 web-page: http://www.csc.liv.ac.uk/~coopes/comp201 Software Testing 1 Defect Testing Defect testing involves
More informationA+ Computer Science -
An array is a group of items all of the same type which are accessed through a single identifier. int[] nums = new int[10]; 0 1 2 3 4 5 6 7 8 9 nums 0 0 0 0 0 0 0 0 0 0 int[] nums; nums null null nothing
More informationLogik für Informatiker Logic for computer scientists
Logik für Informatiker for computer scientists WiSe 2011/12 Overview Motivation Why is logic needed in computer science? The LPL book and software Scheinkriterien Why is logic needed in computer science?
More informationCover Page. The handle holds various files of this Leiden University dissertation
Cover Page The handle http://hdl.handle.net/1887/22891 holds various files of this Leiden University dissertation Author: Gouw, Stijn de Title: Combining monitoring with run-time assertion checking Issue
More informationWho is our rival? Upcoming. Testing. Ariane 5 rocket (1996) Ariane 5 rocket 3/8/18. Real programmers need no testing!
Upcoming Homework 3 posted; due March 22 Literature review due March 20 Testing Paper presentation instructions posted: http://people.cs.umass.edu/~brun/class/2018spring/cs621/paperpresentation/paperpresentation.pdf
More informationCS32 Final Exam. E03, S15, Phill Conrad, UC Santa Barbara Tuesday, 06/08/2015, 8am 11am
1 CS32 Final Exam E03, S15, Phill Conrad, UC Santa Barbara Tuesday, 06/08/2015, 8am 11am Please write your name above AND AT THE TOP OF EVERY PAGE Be sure you turn in every page of this exam. This exam
More informationSatisfiability Modulo Theories: ABsolver
Satisfiability Modulo Theories: ABsolver Michael Tautschnig Joint work with: Andreas Bauer Martin Leucker Christian Schallhart Michael Tautschnig 1 Outline 1. Introduction Michael Tautschnig 2 Outline
More informationAbout this exam review
Final Exam Review About this exam review I ve prepared an outline of the material covered in class May not be totally complete! Exam may ask about things that were covered in class but not in this review
More informationJavaScript. Training Offer for JavaScript Introduction JavaScript. JavaScript Objects
JavaScript CAC Noida is an ISO 9001:2015 certified training center with professional experience that dates back to 2005. The vision is to provide professional education merging corporate culture globally
More informationIntroduction to Programming Using Java (98-388)
Introduction to Programming Using Java (98-388) Understand Java fundamentals Describe the use of main in a Java application Signature of main, why it is static; how to consume an instance of your own class;
More informationReview Chapters 1 to 4. Instructor: Scott Kristjanson CMPT 125/125 SFU Burnaby, Fall 2013
Review Chapters 1 to 4 Instructor: Scott Kristjanson CMPT 125/125 SFU Burnaby, Fall 2013 Introduction to Java Chapters 1 and 2 The Java Language Section 1.1 Data & Expressions Sections 2.1 2.5 Instructor:
More informationBERT: BEhavioral Regression Testing
BERT: BEhavioral Regression Testing Alessandro Orso College of Computing Georgia Institute of Technology orso@cc.gatech.edu Tao Xie Department of Computer Science North Carolina State University xie@csc.ncsu.edu
More information#include <iostream> #include <algorithm> #include <cmath> using namespace std; int f1(int x, int y) { return (double)(x/y); }
1. (9 pts) Show what will be output by the cout s in this program. As in normal program execution, any update to a variable should affect the next statement. (Note: boolalpha simply causes Booleans to
More information1- Write a single C++ statement that: A. Calculates the sum of the two integrates 11 and 12 and outputs the sum to the consol.
1- Write a single C++ statement that: A. Calculates the sum of the two integrates 11 and 12 and outputs the sum to the consol. B. Outputs to the console a floating point number f1 in scientific format
More informationCopyright by Guowei Yang 2013
Copyright by Guowei Yang 2013 The Dissertation Committee for Guowei Yang certifies that this is the approved version of the following dissertation: Enhancing Symbolic Execution Using Memoization and Incremental
More informationCS 151. Linked Lists, Recursively Implemented. Wednesday, October 3, 12
CS 151 Linked Lists, Recursively Implemented 1 2 Linked Lists, Revisited Recall that a linked list is a structure that represents a sequence of elements that are stored non-contiguously in memory. We can
More informationQuo Vadis Program Verification
Quo Vadis Program Verification p. 1/2 Quo Vadis Program Verification Krzysztof R. Apt CWI, Amsterdam, the Netherlands, University of Amsterdam We would like to use correct programs. Quo Vadis Program Verification
More informationLoops. CSE 114, Computer Science 1 Stony Brook University
Loops CSE 114, Computer Science 1 Stony Brook University http://www.cs.stonybrook.edu/~cse114 1 Motivation Suppose that you need to print a string (e.g., "Welcome to Java!") a user-defined times N: N?
More information5) I want to get this done fast, testing is going to slow me down.
Testing Real Programmers need no Testing! The Top Five List 5) I want to get this done fast, testing is going to slow me down. 4) I started programming when I was 2. Don t insult me by testing my perfect
More informationSymbolic Execution of Java Byte-code. Corina Pãsãreanu Perot Systems/NASA Ames Research
Symbolic Execution of Java Byte-code Corina Pãsãreanu Perot Systems/NASA Ames Research ISSTA 08 paper: Combining Unit-level Symbolic Execution and System-level Concrete Execution for Testing NASA Software
More informationÜbungen zur Vorlesung Informatik II (D-BAUG) FS 2017 D. Sidler, F. Friedrich
Übungen zur Vorlesung Informatik II (D-BAUG) FS 2017 D. Sidler, F. Friedrich http://lec.inf.ethz.ch/baug/informatik2/2017 Solution to exercise sheet # 8 10.4.2017 25.4.2017 Problem 8.1. Sliding Window
More informationPLDI 2016 Tutorial Automata-Based String Analysis
PLDI 2016 Tutorial Automata-Based String Analysis Tevfik Bultan, Abdulbaki Aydin, Lucas Bang Verification Laboratory http://vlab.cs.ucsb.edu Department of Computer Science Common Usages of Strings } Input
More informationBIT Java Programming. Sem 1 Session 2011/12. Chapter 2 JAVA. basic
BIT 3383 Java Programming Sem 1 Session 2011/12 Chapter 2 JAVA basic Objective: After this lesson, you should be able to: declare, initialize and use variables according to Java programming language guidelines
More informationTranslation Validation for a Verified OS Kernel
To appear in PLDI 13 Translation Validation for a Verified OS Kernel Thomas Sewell 1, Magnus Myreen 2, Gerwin Klein 1 1 NICTA, Australia 2 University of Cambridge, UK L4.verified sel4 = a formally verified
More informationAdministrivia. HW on recursive lists due on Wednesday. Reading for Wednesday: Chapter 9 thru Quicksort (pp )
Sorting 4/23/18 Administrivia HW on recursive lists due on Wednesday Reading for Wednesday: Chapter 9 thru Quicksort (pp. 271-284) A common problem: Sorting Have collection of objects (numbers, strings,
More informationCS251L REVIEW Derek Trumbo UNM
CS251L REVIEW 2010.8.25 Derek Trumbo UNM Java Applications Java application defined by a Java class with a main method public static void main(string[] args) args is an array of strings represented the
More informationSubstructural Typestates
Programming Languages meets Program Verification 2014 Substructural Typestates Filipe Militão (CMU & UNL) Jonathan Aldrich (CMU) Luís Caires (UNL) Motivation! File file = new File( out.txt );! file.write(
More information1 Epic Test Review 2 Epic Test Review 3 Epic Test Review 4. Epic Test Review 5 Epic Test Review 6 Epic Test Review 7 Epic Test Review 8
Epic Test Review 1 Epic Test Review 2 Epic Test Review 3 Epic Test Review 4 Write a line of code that outputs the phase Hello World to the console without creating a new line character. System.out.print(
More informationFunctions. Arizona State University 1
Functions CSE100 Principles of Programming with C++, Fall 2018 (based off Chapter 6 slides by Pearson) Ryan Dougherty Arizona State University http://www.public.asu.edu/~redoughe/ Arizona State University
More informationHybrid Learning: Interface Generation through Static, Dynamic, and Symbolic Analysis
Hybrid Learning: Interface Generation through Static, Dynamic, and Symbolic Analysis Falk Howar Carnegie Mellon University, Moffett Field, CA, USA howar@cmu.edu Dimitra Giannakopoulou NASA Ames Research
More informationAbstract Semantic Differencing for Numerical Programs
Abstract Semantic Differencing for Numerical Programs Nimrod Partush Eran Yahav Technion, Israel Semantic differencing Characterize semantic difference between similar programs 2 Motivating example 1.
More informationOperational Semantics. One-Slide Summary. Lecture Outline
Operational Semantics #1 One-Slide Summary Operational semantics are a precise way of specifying how to evaluate a program. A formal semantics tells you what each expression means. Meaning depends on context:
More informationSpecification and Generation of Environment for Model Checking of Software Components *
Specification and Generation of Environment for Model Checking of Software Components * Pavel Parizek 1, Frantisek Plasil 1,2 1 Charles University, Faculty of Mathematics and Physics, Department of Software
More informationLecture Outline. COOL operational semantics. Operational Semantics of Cool. Motivation. Notation. The rules. Evaluation Rules So Far.
Lecture Outline Operational Semantics of Cool COOL operational semantics Motivation Adapted from Lectures by Profs. Alex Aiken and George Necula (UCB) Notation The rules CS781(Prasad) L24CG 1 CS781(Prasad)
More informationLe L c e t c ur u e e 2 To T p o i p c i s c t o o b e b e co c v o e v r e ed e Variables Operators
Course Name: Advanced Java Lecture 2 Topics to be covered Variables Operators Variables -Introduction A variables can be considered as a name given to the location in memory where values are stored. One
More informationA Taxonomy of Software Product Line Reengineering
A Taxonomy of Software Product Line Reengineering Wolfram Fenske, Thomas Thüm, Gunter Saake January 22th, 2014 University of Magdeburg, Germany Motivation (1) Widely accepted definition of refactoring
More informationChapter 6: Functions
Chapter 6: Functions 6.1 Modular Programming Modular Programming Modular programming: breaking a program up into smaller, manageable functions or modules Function: a collection of statements to perform
More informationTesting, Debugging, Program Verification
Testing, Debugging, Program Verification Automated Test Case Generation, Part II Wolfgang Ahrendt & Vladimir Klebanov & Moa Johansson 12 December 2012 TDV: ATCG II /GU 2011-12-12 1 / 17 Recap Specification-/Model-Based
More informationSchool of Computer Science CPS109 Course Notes 5 Alexander Ferworn Updated Fall 15
Table of Contents 1 INTRODUCTION... 1 2 IF... 1 2.1 BOOLEAN EXPRESSIONS... 3 2.2 BLOCKS... 3 2.3 IF-ELSE... 4 2.4 NESTING... 5 3 SWITCH (SOMETIMES KNOWN AS CASE )... 6 3.1 A BIT ABOUT BREAK... 7 4 CONDITIONAL
More informationFinding and Fixing Bugs in Liquid Haskell. Anish Tondwalkar
Finding and Fixing Bugs in Liquid Haskell Anish Tondwalkar Overview Motivation Liquid Haskell Fault Localization Fault Localization Evaluation Predicate Discovery Predicate Discovery Evaluation Conclusion
More informationChapter 12 Supplement: Recursion with Java 1.5. Mr. Dave Clausen La Cañada High School
Chapter 12 Supplement: Recursion with Java 1.5 La Cañada High School Recursion: Definitions Recursion The process of a subprogram (method) calling itself. A clearly defined stopping state must exist. The
More informationDeclarations and Access Control SCJP tips
Declarations and Access Control www.techfaq360.com SCJP tips Write code that declares, constructs, and initializes arrays of any base type using any of the permitted forms both for declaration and for
More informationAP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS
AP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS PAUL L. BAILEY Abstract. This documents amalgamates various descriptions found on the internet, mostly from Oracle or Wikipedia. Very little of this
More informationBITS, BYTES, AND INTEGERS
BITS, BYTES, AND INTEGERS CS 045 Computer Organization and Architecture Prof. Donald J. Patterson Adapted from Bryant and O Hallaron, Computer Systems: A Programmer s Perspective, Third Edition ORIGINS
More informationConstant-time programming in C
Constant-time programming in C What s our goal? Goal: Write C programs that don t leak sensitive data Assumption: no explicit leaks E.g., writing secret data to public location Approach: constant-time
More informationAs you come in, pick up a handout at the table.
As you come in, pick up a handout at the table. Announcements Markov was due this morning by 8 AM Look at the late policy on the course website if you haven t yet submitted APT 3 due 2/15 (next Wednesday)
More informationFORM 1 (Please put your name and section number (001/10am or 002/2pm) on the scantron!!!!) CS 161 Exam II: True (A)/False(B) (2 pts each):
FORM 1 (Please put your name and section number (001/10am or 002/2pm) on the scantron!!!!) CS 161 Exam II: True (A)/False(B) (2 pts each): 1. If a function has default arguments, they can be located anywhere
More informationESC/Java2 vs. JMLForge. Juan Pablo Galeotti, Alessandra Gorla, Andreas Rau Saarland University, Germany
ESC/Java2 vs. JMLForge Juan Pablo Galeotti, Alessandra Gorla, Andreas Rau Saarland University, Germany ESC/Java2: the formula is built using Dijsktra s Weakes precondition. Automatic theorem prover: Simplify
More informationSCAPI. The Secure Computation Application Programming Interface Yehuda Lindell. Bar-Ilan University
SCAPI The Secure Computation Application Programming Interface http://crypto.biu.ac.il/about-scapi.php Yehuda Lindell Bar-Ilan University August 20, 2013 CRYPTO 2013 Rump Session Yehuda Lindell SCAPI 20/8/2013
More informationChristoph Csallner, University of Texas at Arlington (UTA)
Christoph Csallner, University of Texas at Arlington (UTA) Joint work with: Nikolai Tillmann (MSR), Yannis Smaragdakis (UMass), Ishtiaque Hussain (UTA), Chengkai Li (UTA) Dynamic symbolic execution Pioneered
More informationComputer Science 1 Bh
UNIVERSITY OF EDINBURGH course CS0077 COLLEGE OF SCIENCE AND ENGINEERING SCHOOL OF INFORMATICS Computer Science 1 Bh Resit Examination Specimen Solutions Date: Friday 6th September 2002 Time: 09:30 11:00
More informationUser-built data types Mutable and immutable data
Chapter 18 User-built data types Mutable and immutable data In some cases the kind of data that a program uses is not provided as a built-in data type by the language. Then a data type can be programmed:
More informationStacks. Common data structures - useful for organizing data for specific tasks Lists Stacks - an Abstract Data Type
Stacks Common data structures - useful for organizing data for specific tasks Lists Stacks - an Abstract Data Type Class interface Polymorphism Use of List as representation of Stacks Pop versus Peek 1
More informationINITIALISING POINTER VARIABLES; DYNAMIC VARIABLES; OPERATIONS ON POINTERS
INITIALISING POINTER VARIABLES; DYNAMIC VARIABLES; OPERATIONS ON POINTERS Pages 792 to 800 Anna Rakitianskaia, University of Pretoria INITIALISING POINTER VARIABLES Pointer variables are declared by putting
More informationlow and not larger than high. 18 points
CSE 330 Test 1 (1 point) Spring 015 Multiple Choice. Write your answer to the LEFT of each problem. 3 points each 1. Lisp was invented at: A. IBM B. MIT C. Netscape D. Stanford. In C++, what operator is
More informationFitness-Guided Path Exploration in Automated Test Generation
Fitness-Guided Path Exploration in Automated Test Generation Tao Xie Department of North Carolina State University http://ase.csc.ncsu.edu/ Joint work with Nikolai Tillmann, Peli de Halleux, Wolfram Schulte
More informationJavaPathFinder. Radek Mařík K333, FEE, CTU, Prague As a selection of slides from several JavaPathFinder tutorials 2013 November 26
JavaPathFinder Radek Mařík K333, FEE, CTU, Prague As a selection of slides from several JavaPathFinder tutorials 2013 November 26 Outline What is JPF Usage examples Test case generation JPF architecture
More informationPLSV, Mock Test, 2011
PLSV, Mock Test, 2011 Question 1 The lseg predicate describes a segment of a singly-linked list. It is defined to be the least predicate satisfying the following equation: lseg(e, F ) (E = F emp) (E F
More informationExtended Static Checking for Haskell (ESC/Haskell)
Extended Static Checking for Haskell (ESC/Haskell) Dana N. Xu University of Cambridge advised by Simon Peyton Jones Microsoft Research, Cambridge Program Errors Give Headache! Module UserPgm where f ::
More informationSoftware Model Checking. From Programs to Kripke Structures
Software Model Checking (in (in C or or Java) Java) Model Model Extraction 1: int x = 2; int y = 2; 2: while (y
More informationPartitioning and Divide-and-Conquer Strategies
Chapter 4 Slide 125 Partitioning and Divide-and-Conquer Strategies Slide 126 Partitioning Partitioning simply divides the problem into parts. Divide and Conquer Characterized by dividing problem into subproblems
More informationThe Sun s Java Certification and its Possible Role in the Joint Teaching Material
The Sun s Java Certification and its Possible Role in the Joint Teaching Material Nataša Ibrajter Faculty of Science Department of Mathematics and Informatics Novi Sad 1 Contents Kinds of Sun Certified
More informationName :. Roll No. :... Invigilator s Signature : INTRODUCTION TO PROGRAMMING. Time Allotted : 3 Hours Full Marks : 70
Name :. Roll No. :..... Invigilator s Signature :.. 2011 INTRODUCTION TO PROGRAMMING Time Allotted : 3 Hours Full Marks : 70 The figures in the margin indicate full marks. Candidates are required to give
More informationWe would like guidance on how to write our programs beyond simply knowing correlations between inputs and outputs.
Chapter 3 Correctness One of the most appealing aspects of computer programs is that they have a close connection to mathematics, in particular, logic. We use these connections implicitly every day when
More informationSoftware Model Checking. Xiangyu Zhang
Software Model Checking Xiangyu Zhang Symbolic Software Model Checking CS510 S o f t w a r e E n g i n e e r i n g Symbolic analysis explicitly explores individual paths, encodes and resolves path conditions
More informationCS313D: ADVANCED PROGRAMMING LANGUAGE
CS313D: ADVANCED PROGRAMMING LANGUAGE Computer Science department Lecture 2 : C# Language Basics Lecture Contents 2 The C# language First program Variables and constants Input/output Expressions and casting
More informationRanking Functions for Loops with Disjunctive Exit-Conditions
Ranking Functions for Loops with Disjunctive Exit-Conditions Rody Kersten 1 Marko van Eekelen 1,2 1 Institute for Computing and Information Sciences (icis), Radboud University Nijmegen 2 School for Computer
More informationBOOGIE. Presentation by Itsik Hefez A MODULAR REUSABLE VERIFIER FOR OBJECT-ORIENTED PROGRAMS MICROSOFT RESEARCH
BOOGIE A MODULAR REUSABLE VERIFIER FOR OBJECT-ORIENTED PROGRAMS MICROSOFT RESEARCH Presentation by Itsik Hefez Introduction Boogie is an intermediate verification language, intended as a layer on which
More information