An Empirical Study of Structural Constraint Solving Techniques
|
|
- Phyllis Bruce
- 5 years ago
- Views:
Transcription
1 An Empirical Study of Structural Constraint Solving Techniques Junaid Haroon Siddiqui Sarfraz Khurshid University of Texas at Austin ICFEM, Rio de Janeiro 9 December 2009
2 Overview Structural constraint solving enables systematic analyses E.g., scope-bounded testing, symbolic/concolic execution Several existing tools can solve structural constraints We evaluate four such tools Alloy tool-set SAT-based analysis CUTE concolic execution engine Java PathFinder (JPF) model checker Korat specialized solver 2
3 Examples of structural constraints 3
4 Examples of structural constraints
5 Examples of structural constraints root city washington service camera accessability public 2 building whitehouse data-type picture resolution 640 x 480 wing west room oval-office 3
6 Examples of structural constraints root city washington service camera accessability public 2 building whitehouse data-type picture resolution 640 x 480 wing Event 0 west room oval-office Event 1 Event 2 toplevel Event_0 ; Event_0 pand Event_1 Event_2 ISeq_0 ISeq_1 FDep_0 FDep_1 ; Event_1 be replication = 1 ; Event_2 be replication = 1 ; ISeq_0 seq Event_0 ; ISeq_1 seq Event_1 ; FDep_0 fdep trigger = Event_0 Event_1 ; FDep_1 fdep trigger = Event_1 Event_2 ; Event_1 dist=exponential rate=.0004 cov=0 res=.5 spt=.5 dorm=0 ; Event_2 dist=exponential rate=.0004 cov=0 res=.5 spt=.5 dorm=. 5 ; 3
7 Examples of structural constraints root Event 0 Event 1 Event 2 2 city washington building whitehouse wing west room oval-office toplevel Event_0 ; Event_0 pand Event_1 Event_2 ISeq_0 ISeq_1 FDep_0 FDep_1 ; Event_1 be replication = 1 ; Event_2 be replication = 1 ; ISeq_0 seq Event_0 ; ISeq_1 seq Event_1 ; FDep_0 fdep trigger = Event_0 Event_1 ; FDep_1 fdep trigger = Event_1 Event_2 ; Event_1 dist=exponential rate=.0004 cov=0 res=.5 spt=.5 dorm=0 ; Event_2 dist=exponential rate=.0004 cov=0 res=.5 spt=.5 dorm=. 5 ; service camera data-type picture module meta_spec sig Signature sig Test accessability public resolution 640 x 480 static sig S1 extends Test static sig S0 extends Signature fun Main() { run Main for 3 3
8 Background: Scope-bounded testing Tests against all inputs within a given bound on input size Inspired by model checking To test a Java method: Use the method precondition to enumerate valid inputs Run the method on each input Check each output using the method postcondition Incremental Scope-bounded Checking 4
9 Example: binary search tree class BinarySearchTree { Node root; int size; static class Node { int info; Node left, right; 5
10 Example: binary search tree class BinarySearchTree { Node root; int size; static class Node { int info; Node left, right; void remove(int i) { 5
11 Example: binary search tree class BinarySearchTree { Node root; int size; static class Node { int info; Node left, right; void remove(int i) { precondition: istree() && isordered() 5
12 Example: binary search tree class BinarySearchTree { Node root; int size; static class Node { int info; Node left, right; void remove(int i) { precondition: istree() && isordered() postcondition: istree() && isordered() 5
13 Example: binary search tree class BinarySearchTree { Node root; int size; static class Node { int info; Node left, right; void remove(int i) { precondition: istree() && isordered() postcondition: istree() && isordered() && removes only i 5
14 Example: non-isomorphic trees of size 3 N 0 : 1 N 0 : 1 N 0 : 3 N 0 : 3 N 0 : 2 right right left left left right N 1 : 2 N 1 : 3 N 1 : 1 N 1 : 2 N 1 : 1 N 2 : 3 right left right left N 2 : 3 N 2 : 2 N 2 : 2 N 2 : 1 6
15 Example: non-isomorphism N 0 : 2 left right N 1 : 1 N 2 : 3 N 0 : 2 left right N 2 : 1 N 1 : 3 N 1 : 2 left right N 0 : 1 N 2 : 3 N 2 : 2 left right N 0 : 1 N 1 : 3 N 1 : 2 left right N 2 : 1 N 0 : 3 N 2 : 2 left right N 1 : 1 N 0 : 3 7
16 Example: non-isomorphism N 0 : 2 left right N 1 : 1 N 2 : 3 N 0 : 2 left right N 2 : 1 N 1 : 3 N 1 : 2 left right N 0 : 1 N 2 : 3 N 2 : 2 left right N 0 : 1 N 1 : 3 N 1 : 2 left right N 2 : 1 N 0 : 3 N 2 : 2 left right N 1 : 1 N 0 : 3 7
17 Outline Four tools Research Questions The Experiment Results Summary 8
18 Alloy tool-set [Jackson+2000] Alloy is a first-order, relational language The Alloy Analyzer is a fully automatic, SAT-based tool Kodkod model finder optimizes the analysis [Torlak +2007] Originally motivated by checking of designs Applications to code Static checking of code [Vaziri+2000] Systematic testing [Marinov+2001] To run Alloy Iteratively set scope, run analysis, fix design/code,... Until solver times out Incremental Scope-bounded Checking 9
19 Java PathFinder (JPF) [Visser+2000] General purpose model checker for Java programs Bounded depth search (iterative deepening) Implements customized JVM to enable model checking Systematic thread interleaving Non-deterministic assignment Originally designed for checking concurrent reactive systems Generalized symbolic execution using lazy initialization allows structural constraint solving [Khurshid+2003] 10
20 Korat [Boyapati+2002] Korat is a tool for automated generation of structurally complex test inputs Given a Java predicate, Korat enumerates inputs for which the predicate returns true Korat performs a backtracking search of a bounded space of candidate inputs Prunes the space by monitoring field accesses 11
21 CUTE [Sen+2005] Combines concrete execution with symbolic execution Supports pointers as well as primitives Motivated by a basic limitation of symbolic execution: Complexity of solving and undecidability of path conditions Uses concrete values to replace some symbolic values Reduces complexity of path conditions 12
22 Example: acyclicity constraint in Alloy precondition boolean istree() { # root.*(left + right) = size // consistency of size all n: root.*(left + right) { n!in n.^(left + right) // no directed cycles sole n.~(left + right) // at most one parent no n.left & n.right // left and right child not the same node boolean isordered() { // binary search 13
23 Example: acyclicity constraint in Alloy precondition boolean istree() { # root.*(left + right) = size // consistency of size all n: root.*(left + right) { n!in n.^(left + right) // no directed cycles sole n.~(left + right) // at most one parent no n.left & n.right // left and right child not the same node boolean isordered() { // binary search 13
24 Example: acyclicity constraint in Alloy precondition boolean istree() { # root.*(left + right) = size // consistency of size all n: root.*(left + right) { n!in n.^(left + right) // no directed cycles sole n.~(left + right) // at most one parent no n.left & n.right // left and right child not the same node boolean isordered() { // binary search 13
25 Example: acyclicity constraint in Alloy precondition boolean istree() { # root.*(left + right) = size // consistency of size all n: root.*(left + right) { n!in n.^(left + right) // no directed cycles sole n.~(left + right) // at most one parent no n.left & n.right // left and right child not the same node boolean isordered() { // binary search 13
26 Example: acyclicity constraint in Alloy precondition boolean istree() { # root.*(left + right) = size // consistency of size all n: root.*(left + right) { n!in n.^(left + right) // no directed cycles sole n.~(left + right) // at most one parent no n.left & n.right // left and right child not the same node boolean isordered() { // binary search 13
27 Example: acyclicity constraint in Alloy precondition boolean istree() { # root.*(left + right) = size // consistency of size all n: root.*(left + right) { n!in n.^(left + right) // no directed cycles sole n.~(left + right) // at most one parent no n.left & n.right // left and right child not the same node boolean isordered() { // binary search 13
28 Example: acyclicity constraint in Alloy precondition boolean istree() { # root.*(left + right) = size // consistency of size all n: root.*(left + right) { n!in n.^(left + right) // no directed cycles sole n.~(left + right) // at most one parent no n.left & n.right // left and right child not the same node boolean isordered() { // binary search 13
29 Example: acyclicity constraint in Java precondition boolean istree() { if (root == null) return size == 0; // empty tree has size 0 Set visited = new HashSet(); visited.add(root); List worklist = new LinkedList(); worklist.add(root); while (!worklist.isempty()) { Node current = (Node)workList.removeFirst(); if (current.left!= null) { if (!visited.add(current.left)) return false; // acyclicity worklist.add(current.left); if (current.right!= null) { if (!visited.add(current.right)) return false; // acyclicity worklist.add(current.right); if (visited.size()!= size) return false; return true; // consistency of size 14
30 Outline Four tools Research Questions The Experiment Results Summary 15
31 Research Questions Writing constraints and Defining bounds Output format Performance for small sizes Performance with complex constraints Time complexity 16
32 The Experiment Subjects of increasing complexity Binary Tree, Binary Search Tree, Red Black Tree Singly Linked List, Doubly Linked List, Sorted Linked List Measured Quantitative: time and candidates generated Qualitative: Input (constraints and bounds) formatting and output (test cases) formatting 17
33 Outline Four tools Research Questions The Experiment Results Summary 18
34 Results: Performance on trees 19
35 Results: Performance on lists 20
36 Results: Isomorphism Handling Subject CUTE Korat Alloy JPF Binary Tree YES YES NO YES Binary Search Tree YES YES YES YES Red Black Tree NO YES YES YES Singly Linked List YES YES NO YES Doubly Linked List YES YES NO YES Sorted List YES YES YES YES 21
37 Results: Constraints, Bounds and Output Format Alloy uses declarative constraints while all other tools use imperative constraints Korat and Alloy support the most direct bounds specification by design Alloy results need to be translated into actual structures Translation time is insignificant compared to solving time 22
38 Results: Summary Fastest tool for small sizes is Korat Lazy initialization with JPF is effectively a slower Korat Declarative constraints are the most concise CUTE provides better time complexity CUTE requires minor tweaking of predicates to work Korat produces no isomorphic solutions 23
39 Results: Summary Fastest tool for small sizes is Korat Lazy initialization with JPF is effectively a slower Korat Declarative constraints are the most concise CUTE provides better time complexity CUTE requires minor tweaking of predicates to work Korat produces no isomorphic solutions jsiddiqui khurshid@ece.utexas.edu 23
assertion-driven analyses from compile-time checking to runtime error recovery
assertion-driven analyses from compile-time checking to runtime error recovery sarfraz khurshid the university of texas at austin state of the art in software testing and analysis day, 2008 rutgers university
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 informationKorat: Automated Testing Based on Java Predicates. Jeff Stuckman
Korat: Automated Testing Based on Java Predicates Jeff Stuckman Korat Korat is a specification-based automated testing tool ideal for testing data structures Korat generates synthetic test data based on
More informationAutomated Software Testing in the Absence of Specifications
Automated Software Testing in the Absence of Specifications Tao Xie North Carolina State University Department of Computer Science Nov 2005 http://www.csc.ncsu.edu/faculty/xie/ Why Automate Testing? Software
More informationEfficient Solving of Structural Constraints
Efficient Solving of Structural Constraints Bassem Elkarablieh University of Texas at Austin Austin, TX 78712 elkarabl@ece.utexas.edu Darko Marinov University of Illinois at Urbana Urbana, IL 61801 marinov@cs.uiuc.edu
More informationAutomatic Test Generation. Galeotti/Gorla/Rau Saarland University
Automatic Test Generation Galeotti/Gorla/Rau Saarland University Testing : Find inputs that make the program fail Debugging : The process of finding the cause of a failure. Test Case Values/Test Input/Test
More informationBounded Exhaustive Test-Input Generation on GPUs
Bounded Exhaustive Test-Input Generation on GPUs AHMET CELIK, The University of Texas at Austin, USA SREEPATHI PAI, The University of Texas at Austin, USA SARFRAZ KHURSHID, The University of Texas at Austin,
More informationWe have the pointers reference the next node in an inorder traversal; called threads
Leaning Objective: In this Module you will be learning the following: Threaded Binary Tree Introduction: Threaded Binary Tree is also a binary tree in which all left child pointers that are NULL (in Linked
More informationState Extensions for Java PathFinder
State Extensions for Java PathFinder Darko Marinov University of Illinois at Urbana-Champaign JPF Workshop May 1, 2008 Broader Context: Work on JPF at UIUC Two lines of work Extend functionality Improve
More informationRepairing Structurally Complex Data
Repairing Structurally Complex Data Sarfraz Khurshid and Iván García and Yuk Lai Suen Department of Electrical and Computer Engineering The University of Texas at Austin 1 University Station C5000 Austin,
More informationPKorat: Parallel Generation of Structurally Complex Test Inputs
PKorat: Parallel Generation of Structurally Complex Test Inputs Junaid Haroon Siddiqui University of Texas at Austin Austin, TX 78712 jsiddiqui@ece.utexas.edu Sarfraz Khurshid University of Texas at Austin
More informationGenerating Structurally Complex Tests from Declarative Constraints. Sarfraz Khurshid
Generating Structurally Complex Tests from Declarative Constraints by Sarfraz Khurshid S.M., Massachusetts Institute of Technology (2000) Part III of the Mathematical Tripos, Trinity College Cambridge
More informationA Case for Efficient Solution Enumeration
A Case for Efficient Solution Enumeration Sarfraz Khurshid Darko Marinov Ilya Shlyakhter Daniel Jackson MIT Laboratory for Computer Science 200 Technology Square Cambridge, MA 02139 USA {khurshid,marinov,ilya
More informationBounded Exhaustive Test Input Generation from Hybrid Invariants
Bounded Exhaustive Test Input Generation from Hybrid Invariants Nicolás Rosner Dept. of Computer Science FCEyN, University of Buenos Aires Buenos Aires, Argentina nrosner@dc.uba.ar Nazareno Aguirre Dept.
More informationKorat: Automated Testing Based on Java Predicates
Korat: Automated Testing Based on Java Predicates Chandrasekhar Boyapati, Sarfraz Khurshid, and Darko Marinov MIT Laboratory for Computer Science 200 Technology Square Cambridge, MA 02139 USA {chandra,khurshid,marinov@lcs.mit.edu
More informationSTARC: Static Analysis for Efficient Repair of Complex Data
STARC: Static Analysis for Efficient Repair of Complex Data Bassem Elkarablieh Sarfraz Khurshid University of Texas at Austin {elkarabl,khurshid@ece.utexas.edu Duy Vu Kathryn S. McKinley University of
More informationUsing Coverage Criteria on RepOK to Reduce Bounded-Exhaustive Test Suites
Using Coverage Criteria on RepOK to Reduce Bounded-Exhaustive Test Suites Valeria Bengolea 1,4, Nazareno Aguirre 1,4, Darko Marinov 2, and Marcelo F. Frias 3,4 1 Department of Computer Science, FCEFQyN,
More informationRigorous Software Development CSCI-GA
Rigorous Software Development CSCI-GA 3033-009 Instructor: Thomas Wies Spring 2013 Lecture 7 Today s Topic: Automated Test Case Generation How to Test Effectively? public class Factorial { /*@ requires
More informationAn incremental approach to scope-bounded checking using a lightweight formal method
An incremental approach to scope-bounded checking using a lightweight formal method Danhua Shao Sarfraz Khurshid Dewayne E. Perry Department of Electrical and Computer Engineering The University of Texas
More informationITI Introduction to Computing II
ITI 1121. Introduction to Computing II Marcel Turcotte School of Electrical Engineering and Computer Science Binary search tree (part I) Version of March 24, 2013 Abstract These lecture notes are meant
More informationITI Introduction to Computing II
ITI 1121. Introduction to Computing II Marcel Turcotte School of Electrical Engineering and Computer Science Binary search tree (part I) Version of March 24, 2013 Abstract These lecture notes are meant
More informationAn Incremental Approach to Scope-Bounded Checking Using a Lightweight Formal Method
An Incremental Approach to Scope-Bounded Checking Using a Lightweight Formal Method Danhua Shao, Sarfraz Khurshid, and Dewayne E. Perry Department of Electrical and Computer Engineering The University
More informationAbstractions and small languages in synthesis CS294: Program Synthesis for Everyone
Abstractions and small languages in synthesis CS294: Program Synthesis for Everyone Ras Bodik Emina Torlak Division of Computer Science University of California, Berkeley Today Today: we describe why high-level
More informationEvaluating State Modeling Techniques in Alloy
16 Evaluating State Modeling Techniques in Alloy ALLISON SULLIVAN, KAIYUAN WANG, and SARFRAZ KHURSHID, The University of Texas at Austin, USA DARKO MARINOV, University of Illinois at Urbana-Champaign,
More informationUnit 9 Practice Test (AB27-30)
Unit 9 Practice Test (AB27-30) Name 1. Consider the following method: public static int checktree(treenode root) return 0; int x = checktree(root.getleft()); if ( x >= 0 && checktree(root.getright()) ==
More informationAn Automated Approach for Writing Alloy Specifications Using Instances
An Automated Approach for Writing Alloy Specifications Using Instances Sarfraz Khurshid Muhammad Zubair Malik Engin Uzuncaova Software Verification, Validation and Testing Group The University of Texas
More informationSymbolic and Concolic Execution of Programs
Symbolic and Concolic Execution of Programs Information Security, CS 526 Omar Chowdhury 10/7/2015 Information Security, CS 526 1 Reading for this lecture Symbolic execution and program testing - James
More informationOptimizing Incremental Scope-bounded Checking with Data-flow Analysis
Optimizing Incremental Scope-bounded Checking with Data-flow Analysis Danhua Shao Divya Gopinath Sarfraz Khurshid Dewayne E. Perry Electrical and Computer Engineering Department The University of Texas
More informationTWO main approaches used to increase software quality
EDIC RESEARCH PROPOSAL 1 Combining Testing and Verification Tihomir Gvero LARA, I&C, EPFL Abstract The paper presents techniques used in both software testing and verification. Korat is the tool that has
More informationGenerating Test Inputs for Fault-Tree Analyzers using Imperative Predicates
Generating Test Inputs for Fault-Tree Analyzers using Imperative Predicates Saša Misailović Aleksandar Milićević University of Belgrade Belgrade, Serbia {sasa.misailovic,aca.milicevic@gmail.com Sarfraz
More information1B1b Implementing Data Structures Lists, Hash Tables and Trees
1B1b Implementing Data Structures Lists, Hash Tables and Trees Agenda Classes and abstract data types. Containers. Iteration. Lists Hash Tables Trees Note here we only deal with the implementation of data
More informationA survey of new trends in symbolic execution for software testing and analysis
Int J Softw Tools Technol Transfer (2009) 11:339 353 DOI 10.1007/s10009-009-0118-1 REGULAR PAPER A survey of new trends in symbolic execution for software testing and analysis Corina S. Păsăreanu Willem
More informationCSE373 Fall 2013, Midterm Examination October 18, 2013
CSE373 Fall 2013, Midterm Examination October 18, 2013 Please do not turn the page until the bell rings. Rules: The exam is closed-book, closed-note, closed calculator, closed electronics. Please stop
More informationOutline. iterator review iterator implementation the Java foreach statement testing
Outline iterator review iterator implementation the Java foreach statement testing review: Iterator methods a Java iterator only provides two or three operations: E next(), which returns the next element,
More informationGeneration of Test Data Structures Using Constraint Logic Programming
1 / 45 Generation of Test Data Structures Using Constraint Logic Programming Valerio Senni 1, Fabio Fioravanti 2 1 Department of Computer Science, Systems and Production University of Rome Tor Vergata,
More informationCMPSCI 187: Programming With Data Structures. Lecture #28: Binary Search Trees 21 November 2011
CMPSCI 187: Programming With Data Structures Lecture #28: Binary Search Trees 21 November 2011 Binary Search Trees The Idea of a Binary Search Tree The BinarySearchTreeADT Interface The LinkedBinarySearchTree
More informationAdvanced Java Concepts Unit 5: Trees. Notes and Exercises
Advanced Java Concepts Unit 5: Trees. Notes and Exercises A Tree is a data structure like the figure shown below. We don t usually care about unordered trees but that s where we ll start. Later we will
More informationProgramming II (CS300)
1 Programming II (CS300) Chapter 07: Linked Lists MOUNA KACEM mouna@cs.wisc.edu Spring 2019 Linked Lists 2 Introduction Linked List Abstract Data Type SinglyLinkedList ArrayList Keep in Mind Introduction:
More informationJPF SE: A Symbolic Execution Extension to Java PathFinder
JPF SE: A Symbolic Execution Extension to Java PathFinder Saswat Anand 1,CorinaS.Păsăreanu 2, and Willem Visser 2 1 College of Computing, Georgia Institute of Technology saswat@cc.gatech.edu 2 QSS and
More informationImproving Program Testing and Understanding via Symbolic Execution
Improving Program Testing and Understanding via Symbolic Execution Kin-Keung Ma PhD Dissertation Defense December 9 th, 2011 Motivation } Every year, billions of dollars are lost due to software system
More informationa graph is a data structure made up of nodes in graph theory the links are normally called edges
1 Trees Graphs a graph is a data structure made up of nodes each node stores data each node has links to zero or more nodes in graph theory the links are normally called edges graphs occur frequently in
More informationLecture 15 Binary Search Trees
Lecture 15 Binary Search Trees 15-122: Principles of Imperative Computation (Fall 2017) Frank Pfenning, André Platzer, Rob Simmons, Iliano Cervesato In this lecture, we will continue considering ways to
More informationLinked Lists. Linked List Nodes. Walls and Mirrors Chapter 5 10/25/12. A linked list is a collection of Nodes: item next -3.
Linked Lists Walls and Mirrors Chapter 5 Linked List Nodes public class Node { private int item; private Node next; public Node(int item) { this(item,null); public Node(int item, Node next) { setitem(item);
More informationIndex. Index. More information. block statements 66 y 107 Boolean 107 break 55, 68 built-in types 107
A abbreviations 17 abstract class 105 abstract data types 105 abstract method 105 abstract types 105 abstraction 92, 105 access level 37 package 114 private 115 protected 115 public 115 accessors 24, 105
More informationEngineering Abstractions in Model Checking and Testing. Michael Achenbach Klaus Ostermann
Engineering Abstractions in Model Checking and Testing Michael Achenbach Klaus Ostermann 1 This Talk What is abstraction engineering? How can we integrate abstractions with current tools? What more is
More informationModel Solutions. COMP 103: Mid-term Test. 19th of August, 2016
Family Name:............................. Other Names:............................. ID Number:............................... Signature.................................. Instructions Time allowed: 45 minutes
More informationMULTIMEDIA COLLEGE JALAN GURNEY KIRI KUALA LUMPUR
STUDENT IDENTIFICATION NO MULTIMEDIA COLLEGE JALAN GURNEY KIRI 54100 KUALA LUMPUR FIFTH SEMESTER FINAL EXAMINATION, 2014/2015 SESSION PSD2023 ALGORITHM & DATA STRUCTURE DSEW-E-F-2/13 25 MAY 2015 9.00 AM
More informationSummer Final Exam Review Session August 5, 2009
15-111 Summer 2 2009 Final Exam Review Session August 5, 2009 Exam Notes The exam is from 10:30 to 1:30 PM in Wean Hall 5419A. The exam will be primarily conceptual. The major emphasis is on understanding
More informationHistory-Aware Data Structure Repair Using SAT
History-Aware Data Structure Repair Using SAT Razieh Nokhbeh Zaeem 1, Divya Gopinath 1, Sarfraz Khurshid 1, and Kathryn S. McKinley 2 1 The University of Texas at Austin {nokhbeh,divyagopinath}@utexas.edu,khurshid@ece.utexas.edu
More informationPrinciples of Computer Science
Principles of Computer Science Binary Trees 08/11/2013 CSCI 2010 - Binary Trees - F.Z. Qureshi 1 Today s Topics Extending LinkedList with Fast Search Sorted Binary Trees Tree Concepts Traversals of a Binary
More informationAlgorithms and complexity: 2 The dictionary problem: search trees
Algorithms and complexity: 2 The dictionary problem: search trees The dictionary problem Given: a set of objects (data) where each element can be identified by a unique key (integer, string,... ). Goal:
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 informationUniversal Symbolic Execution and its Application to Likely Data Structure Invariant Generation
Universal Symbolic Execution and its Application to Likely Data Structure Invariant Generation Yamini Kannan EECS, UC Berkeley yamini@eecs.berkeley.edu Koushik Sen EECS, UC Berkeley ksen@cs.berkeley.edu
More informationProgramming II (CS300)
1 Programming II (CS300) Chapter 07: Linked Lists and Iterators MOUNA KACEM mouna@cs.wisc.edu Fall 2018 Linked Lists 2 Introduction Linked List Abstract Data Type General Implementation of the ListADT
More informationLecture Notes on Binary Search Trees
Lecture Notes on Binary Search Trees 15-122: Principles of Imperative Computation Frank Pfenning André Platzer Lecture 16 March 17, 2015 1 Introduction In this lecture, we will continue considering ways
More informationDO NOT REPRODUCE. CS61B, Fall 2008 Test #3 (revised) P. N. Hilfinger
CS6B, Fall 2008 Test #3 (revised) P. N. Hilfinger. [7 points] Please give short answers to the following, giving reasons where called for. Unless a question says otherwise, time estimates refer to asymptotic
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 informationLecture 15 Notes Binary Search Trees
Lecture 15 Notes Binary Search Trees 15-122: Principles of Imperative Computation (Spring 2016) Frank Pfenning, André Platzer, Rob Simmons 1 Introduction In this lecture, we will continue considering ways
More informationDIT960 Datastrukturer
DIT960 Datastrukturer suggested solutions for exam 2017-08-17 1. Assume that n is a non-negative integer, that s is an integer set implemented with a hash table and containing at most n elements, that
More informationTrees. Chapter 6. strings. 3 Both position and Enumerator are similar in concept to C++ iterators, although the details are quite different.
Chapter 6 Trees In a hash table, the items are not stored in any particular order in the table. This is fine for implementing Sets and Maps, since for those abstract data types, the only thing that matters
More informationDaniel Jackson Computer Science & Artificial Intelligence Lab MIT Microsoft Research March 21, 2005
modelling & analyzing software abstractions Daniel Jackson Computer Science & Artificial Intelligence Lab MIT Microsoft Research March 21, 2005 premise #1: abstractions the design of software abstractions
More informationInstructions. Definitions. Name: CMSC 341 Fall Question Points I. /12 II. /30 III. /10 IV. /12 V. /12 VI. /12 VII.
CMSC 341 Fall 2013 Data Structures Final Exam B Name: Question Points I. /12 II. /30 III. /10 IV. /12 V. /12 VI. /12 VII. /12 TOTAL: /100 Instructions 1. This is a closed-book, closed-notes exam. 2. You
More informationCS171 Final Practice Exam
CS171 Final Practice Exam Name: You are to honor the Emory Honor Code. This is a closed-book and closed-notes exam. You have 150 minutes to complete this exam. Read each problem carefully, and review your
More informationRuntime Checking for Program Verification Systems
Runtime Checking for Program Verification Systems Karen Zee, Viktor Kuncak, and Martin Rinard MIT CSAIL Tuesday, March 13, 2007 Workshop on Runtime Verification 1 Background Jahob program verification
More informationOptimized Execution of Deterministic Blocks in Java PathFinder
Optimized Execution of Deterministic Blocks in Java PathFinder Marcelo d Amorim, Ahmed Sobeih, and Darko Marinov Department of Computer Science University of Illinois at Urbana-Champaign 201 N. Goodwin
More informationCS314 Exam 2 - Fall Suggested Solution and Criteria 1
CS314 Fall 2017 Exam 2 Solution and Grading Criteria. Grading acronyms: AIOBE - Array Index out of Bounds Exception may occur BOD - Benefit of the Doubt. Not certain code works, but, can't prove otherwise
More informationPrelim 1. CS 2110, October 1, 2015, 5:30 PM Total Question Name True Short Testing Strings Recursion
Prelim 1 CS 2110, October 1, 2015, 5:30 PM 0 1 2 3 4 5 Total Question Name True Short Testing Strings Recursion False Answer Max 1 20 36 16 15 12 100 Score Grader The exam is closed book and closed notes.
More informationAdvanced Java Concepts Unit 5: Trees. Notes and Exercises
dvanced Java Concepts Unit 5: Trees. Notes and Exercises Tree is a data structure like the figure shown below. We don t usually care about unordered trees but that s where we ll start. Later we will focus
More informationCS211, LECTURE 20 SEARCH TREES ANNOUNCEMENTS:
CS211, LECTURE 20 SEARCH TREES ANNOUNCEMENTS: OVERVIEW: motivation naive tree search sorting for trees and binary trees new tree classes search insert delete 1. Motivation 1.1 Search Structure continuing
More informationScaling Symbolic Execution using Ranged Analysis
Scaling Symbolic Execution using Ranged Analysis Junaid Haroon Siddiqui University of Texas at Austin 1 University Station Austin, TX 78712 {jsiddiqui,khurshid}@ece.utexas.edu Sarfraz Khurshid Abstract
More informationCS 314 Exam 2 Spring
Points off 1 2 3 4 5 Total off CS 314 Exam 2 Spring 2017 Your Name Your UTEID Instructions: 1. There are 5 questions on this test. 100 points available. Scores will be scaled to 200 points. 2. You have
More informationCOS 226 Algorithms and Data Structures Fall Midterm
COS 226 Algorithms and Data Structures Fall 2017 Midterm This exam has 10 questions (including question 0) worth a total of 55 points. You have 0 minutes. This exam is preprocessed by a computer, so please
More informationPoints off A 4B 5 Total off Net Score. CS 314 Final Exam Spring 2015
Points off 1 2 3 4A 4B 5 Total off Net Score CS 314 Final Exam Spring 2015 Your Name Your UTEID Instructions: 1. There are 5 questions on this test. 100 points available. 2. You have 3 hours to complete
More informationBinary Search Trees. Chapter 21. Binary Search Trees
Chapter 21 Binary Search Trees Binary Search Trees A Binary Search Tree is a binary tree with an ordering property that allows O(log n) retrieval, insertion, and removal of individual elements. Defined
More informationImplementation. Learn how to implement the List interface Understand the efficiency trade-offs between the ArrayList and LinkedList implementations
Readings List Implementations Chapter 20.2 Objectives Learn how to implement the List interface Understand the efficiency trade-offs between the ArrayList and LinkedList implementations Additional references:
More informationStatic Program Checking
Bounded Verification Jalloy Automated Software Analysis Group, Institute of Theoretical Informatics Jun.-prof. Mana Taghdiri June 5, 2014 KIT University of the State of Baden-Wuerttemberg and National
More informationCSE 431S Type Checking. Washington University Spring 2013
CSE 431S Type Checking Washington University Spring 2013 Type Checking When are types checked? Statically at compile time Compiler does type checking during compilation Ideally eliminate runtime checks
More informationCS 307 Final Fall 2009
Points off 1 2 3 4 5 6 Total off Net Score CS 307 Final Fall 2009 Name UTEID login name Instructions: 1. Please turn off your cell phones. 2. There are 6 questions on this test. 3. You have 3 hours to
More informationMore on Verification and Model Checking
More on Verification and Model Checking Wednesday Oct 07, 2015 Philipp Rümmer Uppsala University Philipp.Ruemmer@it.uu.se 1/60 Course fair! 2/60 Exam st October 21, 8:00 13:00 If you want to participate,
More informationNAME: c. (true or false) The median is always stored at the root of a binary search tree.
EE 322C Spring 2009 (Chase) Exam 2: READ THIS FIRST. Please use the back side of each page for scratch paper. For some of the questions you may need to think quite a bit before you write down an answer.
More informationChapter 9. Priority Queue
Chapter 9 Priority Queues, Heaps, Graphs Spring 2015 1 Priority Queue Priority Queue An ADT in which only the item with the highest priority can be accessed 2Spring 2015 Priority Depends on the Application
More informationSystematic Testing of Database Engines Using a Relational Constraint Solver
Systematic Testing of Database Engines Using a Relational Constraint Solver Shadi Abdul Khalek Department of Electrical and Computer Engineering The University of Texas at Austin Austin TX, USA shadi@mail.utexas.edu
More informationPrelim 2. CS 2110, November 20, 2014, 7:30 PM Extra Total Question True/False Short Answer
Prelim 2 CS 2110, November 20, 2014, 7:30 PM 1 2 3 4 5 Extra Total Question True/False Short Answer Complexity Induction Trees Graphs Extra Credit Max 20 10 15 25 30 5 100 Score Grader The exam is closed
More informationFINAL EXAMINATION. COMP-250: Introduction to Computer Science - Fall 2011
STUDENT NAME: STUDENT ID: McGill University Faculty of Science School of Computer Science FINAL EXAMINATION COMP-250: Introduction to Computer Science - Fall 2011 December 13, 2011 2:00-5:00 Examiner:
More informationCSL 201 Data Structures Mid-Semester Exam minutes
CL 201 Data tructures Mid-emester Exam - 120 minutes Name: Roll Number: Please read the following instructions carefully This is a closed book, closed notes exam. Calculators are allowed. However laptops
More informationJava PathFinder. Pavel Parízek. CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics
Java PathFinder http://d3s.mff.cuni.cz Pavel Parízek CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics Java PathFinder (JPF) Verification framework for Java programs Explicit state space
More informationProgramming II (CS300)
1 Programming II (CS300) Chapter 11: Binary Search Trees MOUNA KACEM mouna@cs.wisc.edu Fall 2018 General Overview of Data Structures 2 Introduction to trees 3 Tree: Important non-linear data structure
More informationDDS Dynamic Search Trees
DDS Dynamic Search Trees 1 Data structures l A data structure models some abstract object. It implements a number of operations on this object, which usually can be classified into l creation and deletion
More informationCS32 Discussion Week 3
CS32 Discussion Week 3 Muhao Chen muhaochen@ucla.edu http://yellowstone.cs.ucla.edu/~muhao/ 1 Outline Doubly Linked List Sorted Linked List Reverse a Linked List 2 Doubly Linked List A linked list where
More informationMotivation Computer Information Systems Storage Retrieval Updates. Binary Search Trees. OrderedStructures. Binary Search Tree
Binary Search Trees CMPUT 115 - Lecture Department of Computing Science University of Alberta Revised 21-Mar-05 In this lecture we study an important data structure: Binary Search Tree (BST) Motivation
More informationOutline. Computer Science 331. Heap Shape. Binary Heaps. Heap Sort. Insertion Deletion. Mike Jacobson. HeapSort Priority Queues.
Outline Computer Science 33 Heap Sort Mike Jacobson Department of Computer Science University of Calgary Lectures #5- Definition Representation 3 5 References Mike Jacobson (University of Calgary) Computer
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 informationCS 314 Exam 2 Fall 2017
Points off 1 2 3 4 5 Total off CS 314 Exam 2 Fall 2017 Your Name Your UTEID Circle your TAs Name: Gilbert Jacob Jorge Joseph Lucas Rebecca Shelby Instructions: 1. There are 5 questions on this test. 100
More informationObject-oriented programming. and data-structures CS/ENGRD 2110 SUMMER 2018
Object-oriented programming 1 and data-structures CS/ENGRD 2110 SUMMER 2018 Lecture 1: Types and Control Flow http://courses.cs.cornell.edu/cs2110/2018su Lecture 1 Outline 2 Languages Overview Imperative
More informationTaking Stock. IE170: Algorithms in Systems Engineering: Lecture 7. (A subset of) the Collections Interface. The Java Collections Interfaces
Taking Stock IE170: Algorithms in Systems Engineering: Lecture 7 Jeff Linderoth Department of Industrial and Systems Engineering Lehigh University January 29, 2007 Last Time Practice Some Sorting Algs
More informationFinal exam. CS 2110, December 15, 2016, 9:00AM
Final exam CS 2110, December 15, 2016, 9:00AM Question Short Trie Loop Exp Rec Gen Span Mon BigO Data Total Max 20 7 9 10 9 9 8 10 10 8 100 Score Grader The exam is closed book and closed notes. Do not
More informationSoftware Testing CS 408. Lecture 11: Review 2/20/18
Software Testing CS 408 Lecture 11: Review 2/20/18 Lecture 1: Basics 2 Two Views Verification: Prove the absence, and conjecture the presence, of bugs Ex: types: Not all ill-typed programs are wrong But,
More informationCS165 Practice Midterm Problems Fall 2018
CS165 Practice Midterm Problems Fall 2018 The following is a collection of practice problems for the CS165: Data Structures and Applications second midterm. The questions are similar to what they would
More informationCMSC 330: Organization of Programming Languages
CMSC 330: Organization of Programming Languages Operational Semantics CMSC 330 Summer 2018 1 Formal Semantics of a Prog. Lang. Mathematical description of the meaning of programs written in that language
More informationCMPSCI 187: Programming With Data Structures. Lecture #26: Binary Search Trees David Mix Barrington 9 November 2012
CMPSCI 187: Programming With Data Structures Lecture #26: Binary Search Trees David Mix Barrington 9 November 2012 Binary Search Trees Why Binary Search Trees? Trees, Binary Trees and Vocabulary The BST
More information