Flow Propagation Algorithm

Size: px
Start display at page:

Download "Flow Propagation Algorithm"

Transcription

1 SOMA Flow Propagation Algorithm Univ.Prof. Dr. Franz Wotawa, Birgit Hofer Institut für Softwaretechnologie {wotawa, Institute for Software Technology

2 Agenda Flow Propagation Algorithm Forward Slicing Outlook: Object Flow Graphs Assignment 4 Programming Assignment Birgit Hofer Roxane Koitz Institute for Software Technology VU Software Maintenance 2

3 Up to now: Backward slicing Motivation Computation of statements influencing the value of a variable Identification of faulty statements Now: Correction of the fault Identification of side-effectseffects Compute the statements/variables which are influenced by a statement Institute for Software Technology VU Software Maintenance 3

4 Slicing Backward Computation of statements influencing the value of a variable upwards Forward Computation of statements influenced by a statement downwards Institute for Software Technology VU Software Maintenance 4

5 How to compute forward slices? Reuse backward algorithm? Compute slice for each successor Too time consuming New approach well-known Construct CFG Flow propagation algorithm new Institute for Software Technology VU Software Maintenance 5

6 Flow Propagation Algorithm Graph g Each node n in g consists of 4 sets: in(n) out(n) gen(n) kill(n) determined by the algorithm application specific Institute for Software Technology VU Software Maintenance 6

7 Flow Propagation Algorithm Institute for Software Technology VU Software Maintenance 7

8 Example Institute for Software Technology VU Software Maintenance 8

9 FPA for forward slicing Definitions of application specific sets inslice Initial: false for all nodes slicing criterion Set inslice(n) to true for all nodes n where Set inslice(m) to true for all nodes m where Institute for Software Technology VU Software Maintenance 9

10 Example Forward slice for statement in line 3 Institute for Software Technology VU Software Maintenance 10

11 Application areas of the flow propagation algorithm Forward slicing Backward slicing Compiler optimization Improvement of class diagrams Institute for Software Technology VU Software Maintenance 11

12 Class diagram recovery Institute for Software Technology VU Software Maintenance 12

13 Problems with class diagram recovery Containers Member of type Object Association/dependency in diagram is inaccurate Mismatch between declared type and actual type of objects super classes interfaces Institute for Software Technology VU Software Maintenance 13

14 public class ToyCollection{ static BinaryTreeNode toys = new BinaryTreeNode(); public static addtoy(toy t) { BinaryTreeNode n = new BinaryTreeNode(t); toys.insert(n); } public static void main (String args[]) { Toy t = new Toy("PS2"); addtoy(t); } } class Toy implements Comparable { Object id; public Toy () { id = null; } public void name (Object name) { id = name; } } public class BinaryTreeNode{ BinaryTreeNode left,right; Comparable obj; public BinaryTreeNode(Comparable x) { obj = x; } Example Missing connection! BinaryTreeNode ToyCollection String Comparable Toy Object } Institute for Software Technology VU Software Maintenance 14

15 How can we improve the class diagram? next week Institute for Software Technology VU Software Maintenance 15

16 SOMA Assignment 4 Roxane Koitz Institute for Software Technology

17 1. begin 2. s =5; 3. r = 2 * x; 4. if((s + 1 ) >= 6 ) then 5. begin Calculate the relevant slice for 6. while( r > 10) do 7. begin the slicing criterion: 8. s = r * 2; 5 9. r = r 2; 10. end; 11. od; 12. end; 13. else 14. begin 15. s = s+1; 16. r = 2 + s; 17. end; 18. fi; end; Institute for Software Technology Relevant Slicing ( x = 5,19,{ s})

18 1. begin 2. b= a * 3; 3. k = 2/k; 4. if( k > b ) then 5. begin 6. k = 2 * b; 7. b = 3; 8. end; 9. else 10. begin 11. while( k < 5 ) do 12. begin 13. k = k + b; 14. end; 15. od; 16. end; 17. fi; 18. write(b); 19. end; Relevant Slicing Calculate the relevant slice for the slicing criterion: 7 ( a = 2, k = 2,18,{ b }) Institute for Software Technology

19 Delta Debugging Input: c = 1234abcd Function test: test(x) = iff a2 x c test(x) =, otherwise Institute for Software Technology

20 Questions? Institute for Software Technology VU Software Maintenance 20

Object Flow Graphs (Part II)

Object Flow Graphs (Part II) Object Flow Graphs (Part II) soma@ist.tugraz.at 1 Outline Repetition Program abstraction Graph creation Containers NEW Object sensitivity Improvement of class diagrams 2 Outline Repetition Program abstraction

More information

We can express this in dataflow equations using gen and kill sets, where the sets are now sets of expressions.

We can express this in dataflow equations using gen and kill sets, where the sets are now sets of expressions. Available expressions Suppose we want to do common-subexpression elimination; that is, given a program that computes x y more than once, can we eliminate one of the duplicate computations? To find places

More information

Class 6. Review; questions Assign (see Schedule for links) Slicing overview (cont d) Problem Set 3: due 9/8/09. Program Slicing

Class 6. Review; questions Assign (see Schedule for links) Slicing overview (cont d) Problem Set 3: due 9/8/09. Program Slicing Class 6 Review; questions Assign (see Schedule for links) Slicing overview (cont d) Problem Set 3: due 9/8/09 1 Program Slicing 2 1 Program Slicing 1. Slicing overview 2. Types of slices, levels of slices

More information

CSCE 548 Building Secure Software Data Flow Analysis

CSCE 548 Building Secure Software Data Flow Analysis CSCE 548 Building Secure Software Data Flow Analysis Professor Lisa Luo Spring 2018 Previous Class Why we need reverse engineering? Tools for reverse engineering Debugger Disassembler System monitoring

More information

We can express this in dataflow equations using gen and kill sets, where the sets are now sets of expressions.

We can express this in dataflow equations using gen and kill sets, where the sets are now sets of expressions. Available expressions Suppose we want to do common-subexpression elimination; that is, given a program that computes x y more than once, can we eliminate one of the duplicate computations? To find places

More information

Compiler Design. Fall Data-Flow Analysis. Sample Exercises and Solutions. Prof. Pedro C. Diniz

Compiler Design. Fall Data-Flow Analysis. Sample Exercises and Solutions. Prof. Pedro C. Diniz Compiler Design Fall 2015 Data-Flow Analysis Sample Exercises and Solutions Prof. Pedro C. Diniz USC / Information Sciences Institute 4676 Admiralty Way, Suite 1001 Marina del Rey, California 90292 pedro@isi.edu

More information

Static Slicing. Software Maintenance

Static Slicing. Software Maintenance soma@ist.tugraz.at 1 Outline Basics Control flow graphs Slicing Motivation Static slicing with relevant variables table Static slicing with program dependency graphs Summary & Outline 2 Outline Basics

More information

Data Flow Analysis. CSCE Lecture 9-02/15/2018

Data Flow Analysis. CSCE Lecture 9-02/15/2018 Data Flow Analysis CSCE 747 - Lecture 9-02/15/2018 Data Flow Another view - program statements compute and transform data So, look at how that data is passed through the program. Reason about data dependence

More information

Program Optimizations using Data-Flow Analysis

Program Optimizations using Data-Flow Analysis Program Optimizations using Data-Flow Analysis!Last time! Lattice theoretic framework for data-flow analysis!today! Dead-code elimination! Common sub-expression elimination (CSE)! Copy propagation! Constant

More information

Static Detection of Access Anomalies in Ada95

Static Detection of Access Anomalies in Ada95 Static Detection of Access Anomalies in Ada95 Bernd Burgstaller, University of Sydney Johann Blieberger, Vienna University of Technology Robert Mittermayr, ARC Seibersdorf research GmbH Static Detection

More information

MIT Introduction to Dataflow Analysis. Martin Rinard Laboratory for Computer Science Massachusetts Institute of Technology

MIT Introduction to Dataflow Analysis. Martin Rinard Laboratory for Computer Science Massachusetts Institute of Technology MIT 6.035 Introduction to Dataflow Analysis Martin Rinard Laboratory for Computer Science Massachusetts Institute of Technology Dataflow Analysis Used to determine properties of program that involve multiple

More information

Data Flow Information. already computed

Data Flow Information. already computed Data Flow Information Determine if Determine if a constant in loop modifies Determine if expression already computed Determine if not used later in program Data Flow Equations Local Information: Gen(B):

More information

Foundations of Dataflow Analysis

Foundations of Dataflow Analysis Foundations of Dataflow Analysis 15-745 Optimizing Compilers Spring 2006 Peter Lee Ingredients of a dataflow analysis direction: forward or backward flow/transfer function combining ( meet ) operator dataflow

More information

On the Empirical Evaluation of Fault Localization Techniques for Spreadsheets

On the Empirical Evaluation of Fault Localization Techniques for Spreadsheets On the Empirical Evaluation of Fault Localization Techniques for Spreadsheets Birgit Hofer, Franz Wotawa, Elisabeth Getzner André Riboira, Rui Abreu 1 Spreadsheet Debugging Spreadsheet users outnumber

More information

Register allocation. Register allocation: ffl have value in a register when used. ffl limited resources. ffl changes instruction choices

Register allocation. Register allocation: ffl have value in a register when used. ffl limited resources. ffl changes instruction choices Register allocation IR instruction selection register allocation machine code errors Register allocation: have value in a register when used limited resources changes instruction choices can move loads

More information

Debugging Program Slicing

Debugging Program Slicing Debugging Franz Wotawa Institut für Informationssysteme, Database and Artificial Intelligence Group, Technische Universität Wien Email: wotawa@dbai.tuwien.ac.at 1 What is a Slice? A Slice is a reduced

More information

DEBUGGING: STATIC ANALYSIS

DEBUGGING: STATIC ANALYSIS DEBUGGING: STATIC ANALYSIS WS 2017/2018 Martina Seidl Institute for Formal Models and Verification Deduction Techniques (1/2) basic idea: reasoning from abstract program to concrete program runs (program

More information

Object Oriented Programming. Week 7 Part 1 Exceptions

Object Oriented Programming. Week 7 Part 1 Exceptions Object Oriented Programming Week 7 Part 1 Exceptions Lecture Overview of Exception How exceptions solve unexpected occurrences Catching exceptions Week 7 2 Exceptions Overview Week 7 3 Unexpected Occurances

More information

Sample Questions for Midterm Exam 2

Sample Questions for Midterm Exam 2 Sample Questions for Midterm Exam 2 The following are meant to give you some examples of questions that might be asked on the second midterm exam. The sample exam questions do not represent the length

More information

CS553 Lecture Generalizing Data-flow Analysis 3

CS553 Lecture Generalizing Data-flow Analysis 3 Generalizing Data-flow Analysis Announcements Project 2 writeup is available Read Stephenson paper Last Time Control-flow analysis Today C-Breeze Introduction Other types of data-flow analysis Reaching

More information

COE318 Lecture Notes Week 10 (Nov 7, 2011)

COE318 Lecture Notes Week 10 (Nov 7, 2011) COE318 Software Systems Lecture Notes: Week 10 1 of 5 COE318 Lecture Notes Week 10 (Nov 7, 2011) Topics More about exceptions References Head First Java: Chapter 11 (Risky Behavior) The Java Tutorial:

More information

KU Compilerbau - Programming Assignment

KU Compilerbau - Programming Assignment 716.077 KU Compilerbau - Programming Assignment Dr. Birgit Hofer, Univ.-Prof. Dr. Franz Wotawa Institute for Software Technology, Graz University of Technology March 11, 2014 Introduction During this semester

More information

CS 2230 CS II: Data structures. Meeting 21: trees Brandon Myers University of Iowa

CS 2230 CS II: Data structures. Meeting 21: trees Brandon Myers University of Iowa CS 2230 CS II: Data structures Meeting 21: trees Brandon Myers University of Iowa Today s learning objectives Define tree (a data structure that can store data hierarchically) and describe trees in terms

More information

Compiler Construction. (1 Design practical)

Compiler Construction. (1 Design practical) S C I E N C E n P A S S I O N n T E C H N O L O G Y (1 ) 716.077 SS 2017 Univ.-Prof. Dr. Franz Wotawa, DI Roxane Koitz Martin Zimmermann, Christopher Liebmann, Stephan Frühwirt Institute for Software Technology

More information

data_type variable_name = value; Here value is optional because in java, you can declare the variable first and then later assign the value to it.

data_type variable_name = value; Here value is optional because in java, you can declare the variable first and then later assign the value to it. Introduction to JAVA JAVA is a programming language which is used in Android App Development. It is class based and object oriented programming whose syntax is influenced by C++. The primary goals of JAVA

More information

You have seen abstractions in many places, lets consider them from the ground up.

You have seen abstractions in many places, lets consider them from the ground up. CS1706 Intro to Object Oriented Dev II - Fall 04 Announcements Week 10 Project 2 due 11/01 Material Interfaces Anonymous classes Lets see abstractions... You have seen abstractions in many places, lets

More information

Locating Faults Through Automated Predicate Switching

Locating Faults Through Automated Predicate Switching Locating Faults Through Automated Predicate Switching Authored by Xiangyu Zhang, Neelam Gupta, Rajiv Gupta The University of Arizona ICSE 2006 Presented by Jing Pu Authors 1 Neelam Gupta The University

More information

VU. Software-Maintenance. Lecture Notes. Prof. Dr. Franz Wotawa Dipl.-Ing. Dipl.-Ing. Roxane Koitz Dr. Birgit Hofer

VU. Software-Maintenance. Lecture Notes. Prof. Dr. Franz Wotawa Dipl.-Ing. Dipl.-Ing. Roxane Koitz Dr. Birgit Hofer 716.064 VU Software-Maintenance Lecture Notes Prof. Dr. Franz Wotawa Dipl.-Ing. Dipl.-Ing. Roxane Koitz Dr. Birgit Hofer WS 2016/17 October 31, 2016 Institut für Softwaretechnologie, Inffeldgasse 16b/2,

More information

Why does my spreadsheet compute wrong values?

Why does my spreadsheet compute wrong values? S C I E N C E P A S S I O N T E C H N O L O G Y Why does my spreadsheet compute wrong values? Birgit Hofer, and Franz Wotawa Graz University of Technology, Austria 25th 1 IEEE Int. Symposium on Software

More information

CIS 341 Final Examination 4 May 2017

CIS 341 Final Examination 4 May 2017 CIS 341 Final Examination 4 May 2017 1 /14 2 /15 3 /12 4 /14 5 /34 6 /21 7 /10 Total /120 Do not begin the exam until you are told to do so. You have 120 minutes to complete the exam. There are 14 pages

More information

control edge synchronization edge MGOTO COEND

control edge synchronization edge MGOTO COEND and Optimization of Explicitly Analysis Programs using the Parallel Parallel Program Graph Representation Vivek Sarkar MIT Laboratory for Computer Science (vivek@lcs.mit.edu) 1 Motivation Current sequence

More information

Slicing. Rupesh Nasre. CS6843 Program Analysis IIT Madras Jan 2016

Slicing. Rupesh Nasre. CS6843 Program Analysis IIT Madras Jan 2016 Slicing Rupesh Nasre. CS6843 Program Analysis IIT Madras Jan 2016 Outline Introduction and applications Application time static dynamic Direction forward backward 2 Definition A slice is a subset of program

More information

Trees Chapter 19, 20. Instructor: Scott Kristjanson CMPT 125/125 SFU Burnaby, Fall 2013

Trees Chapter 19, 20. Instructor: Scott Kristjanson CMPT 125/125 SFU Burnaby, Fall 2013 Trees Chapter 19, 20 Instructor: Scott Kristjanson CMPT 125/125 SFU Burnaby, Fall 2013 2 Scope Trees: Trees as data structures Tree terminology Tree implementations Analyzing tree efficiency Tree traversals

More information

Data Flow Analysis. Suman Jana. Adopted From U Penn CIS 570: Modern Programming Language Implementa=on (Autumn 2006)

Data Flow Analysis. Suman Jana. Adopted From U Penn CIS 570: Modern Programming Language Implementa=on (Autumn 2006) Data Flow Analysis Suman Jana Adopted From U Penn CIS 570: Modern Programming Language Implementa=on (Autumn 2006) Data flow analysis Derives informa=on about the dynamic behavior of a program by only

More information

Model-based Software Debugging

Model-based Software Debugging S C I E N C E P A S S I O N T E C H N O L O G Y Birgit Hofer Institute for Software Technology 1 u www.tugraz.at 2 Visualization Design & Maintenance Support Static Analysis Modeling Spreadsheet Quality

More information

Practice Questions for Chapter 9

Practice Questions for Chapter 9 Practice Questions for Chapter 9 MULTIPLE CHOICE. Choose the one alternative that best completes the statement or answers the question. 1) An object is an instance of a. 1) A) program B) method C) class

More information

Rules and syntax for inheritance. The boring stuff

Rules and syntax for inheritance. The boring stuff Rules and syntax for inheritance The boring stuff The compiler adds a call to super() Unless you explicitly call the constructor of the superclass, using super(), the compiler will add such a call for

More information

Conditioned Slicing. David Jong-hoon An. May 23, Abstract

Conditioned Slicing. David Jong-hoon An. May 23, Abstract Conditioned Slicing David Jong-hoon An May 23, 2007 Abstract Program debugging is often a tedious and difficult process that requires programmers to inspect complicated code to understand and analyze the

More information

Data-flow Analysis. Y.N. Srikant. Department of Computer Science and Automation Indian Institute of Science Bangalore

Data-flow Analysis. Y.N. Srikant. Department of Computer Science and Automation Indian Institute of Science Bangalore Department of Computer Science and Automation Indian Institute of Science Bangalore 560 012 NPTEL Course on Compiler Design Data-flow analysis These are techniques that derive information about the flow

More information

KU Compilerbau - Programming Assignment

KU Compilerbau - Programming Assignment 716.077 KU Compilerbau - Programming Assignment Univ.-Prof. Dr. Franz Wotawa, Birgit Hofer Institute for Software Technology, Graz University of Technology April 20, 2011 Introduction During this semester

More information

Model-based Software Debugging. Part III

Model-based Software Debugging. Part III S C I E N C E P A S S I O N T E C H N O L O G Y Part III Birgit Hofer Institute for Software Technology 60 u www.tugraz.at Outline Model-based debugging for Spreadsheets o Dependency-based models Model-based

More information

CLASS DESIGN. Objectives MODULE 4

CLASS DESIGN. Objectives MODULE 4 MODULE 4 CLASS DESIGN Objectives > After completing this lesson, you should be able to do the following: Use access levels: private, protected, default, and public. Override methods Overload constructors

More information

Using LNT Formal Descriptions for Model-Based Diagnosis

Using LNT Formal Descriptions for Model-Based Diagnosis Using LNT Formal Descriptions for Model-Based Diagnosis Birgit Hofer 1, Radu Mateescu 2, Wendelin Serwe 2, and Franz Wotawa 1 1 TU Graz, Institute for Software Technology 2 Univ. Grenoble Alpes, Inria,

More information

Replaying and Isolating Failing Multi-Object Interactions. Martin Burger Andreas Zeller Saarland University

Replaying and Isolating Failing Multi-Object Interactions. Martin Burger Andreas Zeller Saarland University Replaying and Isolating Failing Multi-Object Interactions Martin Burger Andreas Zeller Saarland University e-mail client written in Java 100,200 LOC ~ 1,600 Java classes 17 developers Actively developed

More information

a. The following method would allow an object of the static type List<String> to be passed to it as an argument.

a. The following method would allow an object of the static type List<String> to be passed to it as an argument. On the final exam you will be provided UML diagrams for design patterns (as in the midterm) and also JavaDoc description of methods in the Reflection API. 1. True/False (if false, explain why) a. The following

More information

Program development plan

Program development plan Appendix A Program development plan If you are spending a lot of time debugging, it is probably because you do not have an effective program development plan. A typical, bad program development plan goes

More information

Fault, Error, and Failure

Fault, 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 information

C++ Crash Kurs. Exceptions. Dr. Dennis Pfisterer Institut für Telematik, Universität zu Lübeck

C++ Crash Kurs. Exceptions. Dr. Dennis Pfisterer Institut für Telematik, Universität zu Lübeck C++ Crash Kurs Exceptions Dr. Dennis Pfisterer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/pfisterer C++ Exceptions: Introduction What are exceptions Exceptions are

More information

Java Basics. Object Orientated Programming in Java. Benjamin Kenwright

Java Basics. Object Orientated Programming in Java. Benjamin Kenwright Java Basics Object Orientated Programming in Java Benjamin Kenwright Outline Essential Java Concepts Syntax, Grammar, Formatting, Introduce Object-Orientated Concepts Encapsulation, Abstract Data, OO Languages,

More information

POLYMORPHISM 2 PART. Shared Interface. Discussions. Abstract Base Classes. Abstract Base Classes and Pure Virtual Methods EXAMPLE

POLYMORPHISM 2 PART. Shared Interface. Discussions. Abstract Base Classes. Abstract Base Classes and Pure Virtual Methods EXAMPLE Abstract Base Classes POLYMORPHISM 2 PART Abstract Classes Static and Dynamic Casting Common Programming Errors class B { // base class virtual void m( ) =0; // pure virtual function class D1 : public

More information

POLYMORPHISM 2 PART Abstract Classes Static and Dynamic Casting Common Programming Errors

POLYMORPHISM 2 PART Abstract Classes Static and Dynamic Casting Common Programming Errors POLYMORPHISM 2 PART Abstract Classes Static and Dynamic Casting Common Programming Errors CSC 330 OO Software Design 1 Abstract Base Classes class B { // base class virtual void m( ) =0; // pure virtual

More information

Data-flow Analysis - Part 2

Data-flow Analysis - Part 2 - Part 2 Department of Computer Science Indian Institute of Science Bangalore 560 012 NPTEL Course on Compiler Design Data-flow analysis These are techniques that derive information about the flow of data

More information

CS/ENGRD 2110 SPRING Lecture 5: Local vars; Inside-out rule; constructors

CS/ENGRD 2110 SPRING Lecture 5: Local vars; Inside-out rule; constructors 1 CS/ENGRD 2110 SPRING 2017 Lecture 5: Local vars; Inside-out rule; constructors http://courses.cs.cornell.edu/cs2110 Announcements 2 1. Writing tests to check that the code works when the precondition

More information

PASS4TEST IT 인증시험덤프전문사이트

PASS4TEST IT 인증시험덤프전문사이트 PASS4TEST IT 인증시험덤프전문사이트 http://www.pass4test.net 일년동안무료업데이트 Exam : 1z0-809 Title : Java SE 8 Programmer II Vendor : Oracle Version : DEMO Get Latest & Valid 1z0-809 Exam's Question and Answers 1 from

More information

OOSE2 Vererbung und Polymorphie mit BlueJ

OOSE2 Vererbung und Polymorphie mit BlueJ OOSE2 Vererbung und Polymorphie mit BlueJ Lehrstuhl Softwaretechnologie, Dr. Birgit Demuth Sommersemester 2016 Erweiterung von HelloLibrary (U02) SS 2016 OOSE 2 2 BlueJ SS 2016 OOSE 2 3 HelloLibrary (U02):

More information

(A) 99 ** (B) 100 (C) 101 (D) 100 initial integers plus any additional integers required during program execution

(A) 99 ** (B) 100 (C) 101 (D) 100 initial integers plus any additional integers required during program execution Ch 5 Arrays Multiple Choice Test 01. An array is a ** (A) data structure with one, or more, elements of the same type. (B) data structure with LIFO access. (C) data structure, which allows transfer between

More information

Plan for Today. Concepts. Next Time. Some slides are from Calvin Lin s grad compiler slides. CS553 Lecture 2 Optimizations and LLVM 1

Plan for Today. Concepts. Next Time. Some slides are from Calvin Lin s grad compiler slides. CS553 Lecture 2 Optimizations and LLVM 1 Plan for Today Quiz 2 How to automate the process of performance optimization LLVM: Intro to Intermediate Representation Loops as iteration spaces Data-flow Analysis Intro Control-flow graph terminology

More information

CSE 401/M501 Compilers

CSE 401/M501 Compilers CSE 401/M501 Compilers Code Shape II Objects & Classes Hal Perkins Autumn 2018 UW CSE 401/M501 Autumn 2018 L-1 Administrivia Semantics/type check due next Thur. 11/15 How s it going? Reminder: if you want

More information

Program Analysis. Readings

Program Analysis. Readings Program Analysis Class #2 Readings he Program Dependence Graph and Its Use in Optimization Program slicing A Survey of Program Slicing echniques Dragon book Program Analysis Data-low Analysis (wrap up)

More information

String Instructions In C Program Examples >>>CLICK HERE<<<

String Instructions In C Program Examples >>>CLICK HERE<<< String Instructions In C Program Examples Reverse The Given Reverse of a string is the string starting from last. Here is program to print the reverse of a string. Example: Input: Hello Output: olleh.

More information

CSE115 Introduction to Computer Science I Coding Exercise #7 Retrospective Fall 2017

CSE115 Introduction to Computer Science I Coding Exercise #7 Retrospective Fall 2017 This week the main activity was a quiz activity, with a structure similar to our Friday lecture activities. The retrospective for the quiz is in Quiz-07- retrospective.pdf This retrospective explores the

More information

Static Slicing of Threaded Programs

Static Slicing of Threaded Programs Static Slicing of Threaded Programs Jens Krinke krinke@ips.cs.tu-bs.de TU Braunschweig Abteilung Softwaretechnologie Abstract Static program slicing is an established method for analyzing sequential programs,

More information

Relation Overriding. Syntax and Semantics. Simple Semantic Domains. Operational Semantics

Relation Overriding. Syntax and Semantics. Simple Semantic Domains. Operational Semantics SE3E03, 2006 1.59 61 Syntax and Semantics Syntax Shape of PL constructs What are the tokens of the language? Lexical syntax, word level How are programs built from tokens? Mostly use Context-Free Grammars

More information

Selected Questions from by Nageshwara Rao

Selected Questions from  by Nageshwara Rao Selected Questions from http://way2java.com by Nageshwara Rao Swaminathan J Amrita University swaminathanj@am.amrita.edu November 24, 2016 Swaminathan J (Amrita University) way2java.com (Nageshwara Rao)

More information

Assignment 6. Methods Homework Spring 2017 P Question 1 all

Assignment 6. Methods Homework Spring 2017 P Question 1 all Assignment 6. Methods Homework Spring 2017 P. 225-234 Question 1 all True since the parameters are different b. True since the parameters are different c. False since the return type is different but the

More information

Introduction to Computer Science II (CSI 1101)

Introduction to Computer Science II (CSI 1101) Introduction to Computer Science II (CSI 1101) Professor: M. Turcotte February 2002, duration: 75 minutes Identification Student name: last name: Section: Student number: initials: Signature: Instructions

More information

2018/2/5 话费券企业客户接入文档 语雀

2018/2/5 话费券企业客户接入文档 语雀 1 2 2 1 2 1 1 138999999999 2 1 2 https:lark.alipay.com/kaidi.hwf/hsz6gg/ppesyh#2.4-%e4%bc%81%e4%b8%9a%e5%ae%a2%e6%88%b7%e6%8e%a5%e6%94%b6%e5%85%85%e5 1/8 2 1 3 static IAcsClient client = null; public static

More information

Techniques for Debugging Model-Transformation Failures

Techniques for Debugging Model-Transformation Failures IBM Research - India Techniques for Debugging Model-Transformation Failures Saurabh Sinha Pankaj Dhoolia, Senthil Mani, Vibha Sinha, Mangala Gowri Model Transformation A transform is an application that

More information

CS577 Modern Language Processors. Spring 2018 Lecture Optimization

CS577 Modern Language Processors. Spring 2018 Lecture Optimization CS577 Modern Language Processors Spring 2018 Lecture Optimization 1 GENERATING BETTER CODE What does a conventional compiler do to improve quality of generated code? Eliminate redundant computation Move

More information

Research Article Combining Slicing and Constraint Solving for Better Debugging: The Conbas Approach

Research Article Combining Slicing and Constraint Solving for Better Debugging: The Conbas Approach Advances in Software Engineering Volume 2012, Article ID 628571, 18 pages doi:10.1155/2012/628571 Research Article Combining Slicing and Constraint Solving for Better Debugging: The Conbas Approach Birgit

More information

Static Slicing of Binary Executables with DynInst

Static Slicing of Binary Executables with DynInst Static Slicing of Binary Executables with DynInst Tuğrul İnce Slicing int method=set; int number = 0; int x = 1, y = 2; if(method == SET) { number = 42; printf( Just set the number to 42 ); } else { x

More information

Compiler Optimisation

Compiler Optimisation Compiler Optimisation 4 Dataflow Analysis Hugh Leather IF 1.18a hleather@inf.ed.ac.uk Institute for Computing Systems Architecture School of Informatics University of Edinburgh 2018 Introduction This lecture:

More information

CMSC 132: Object-Oriented Programming II

CMSC 132: Object-Oriented Programming II CMSC 132: Object-Oriented Programming II Java Support for OOP Department of Computer Science University of Maryland, College Park Object Oriented Programming (OOP) OO Principles Abstraction Encapsulation

More information

Mid-Term 2 Grades

Mid-Term 2 Grades Mid-Term 2 Grades 100 46 1 HW 9 Homework 9, in untyped class interpreter: Add instanceof Restrict field access to local class Implement overloading (based on argument count) Due date is the same as for

More information

Chapter 1 Lab Algorithms, Errors, and Testing

Chapter 1 Lab Algorithms, Errors, and Testing Chapter 1 Lab Algorithms, Errors, and Testing Lab Objectives Be able to write an algorithm Be able to compile a Java program Be able to execute a Java program using the Sun JDK or a Java IDE Be able to

More information

Announcement. Agenda 7/31/2008. Polymorphism, Dynamic Binding and Interface. The class will continue on Tuesday, 12 th August

Announcement. Agenda 7/31/2008. Polymorphism, Dynamic Binding and Interface. The class will continue on Tuesday, 12 th August Polymorphism, Dynamic Binding and Interface 2 4 pm Thursday 7/31/2008 @JD2211 1 Announcement Next week is off The class will continue on Tuesday, 12 th August 2 Agenda Review Inheritance Abstract Array

More information

Lecture 6 Foundations of Data Flow Analysis

Lecture 6 Foundations of Data Flow Analysis Review: Reaching Definitions Lecture 6 Foundations of Data Flow Analysis I. Meet operator II. Transfer functions III. Correctness, Precision, Convergence IV. Efficiency [ALSU 9.3] Phillip B. Gibbons 15-745:

More information

Compiler Optimizations. Chapter 8, Section 8.5 Chapter 9, Section 9.1.7

Compiler Optimizations. Chapter 8, Section 8.5 Chapter 9, Section 9.1.7 Compiler Optimizations Chapter 8, Section 8.5 Chapter 9, Section 9.1.7 2 Local vs. Global Optimizations Local: inside a single basic block Simple forms of common subexpression elimination, dead code elimination,

More information

Context-sensitive Analysis

Context-sensitive Analysis Context-sensitive Analysis Beyond Syntax There is a level of correctness that is deeper than grammar fie(a,b,c,d) int a, b, c, d; { } fee() { int f[3],g[0], h, i, j, k; char *p; fie(h,i, ab,j, k); k =

More information

1. A Remote Proxy helps to hide all the low-level details of exception handling from the proxy Client.

1. 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 information

Following is the general form of a typical decision making structure found in most of the programming languages:

Following is the general form of a typical decision making structure found in most of the programming languages: Decision Making Decision making structures have one or more conditions to be evaluated or tested by the program, along with a statement or statements that are to be executed if the condition is determined

More information

Why Data Flow Models? Dependence and Data Flow Models. Learning objectives. Def-Use Pairs (1) Models from Chapter 5 emphasized control

Why Data Flow Models? Dependence and Data Flow Models. Learning objectives. Def-Use Pairs (1) Models from Chapter 5 emphasized control Why Data Flow Models? Dependence and Data Flow Models Models from Chapter 5 emphasized control Control flow graph, call graph, finite state machines We also need to reason about dependence Where does this

More information

Compiler Optimizations. Chapter 8, Section 8.5 Chapter 9, Section 9.1.7

Compiler Optimizations. Chapter 8, Section 8.5 Chapter 9, Section 9.1.7 Compiler Optimizations Chapter 8, Section 8.5 Chapter 9, Section 9.1.7 2 Local vs. Global Optimizations Local: inside a single basic block Simple forms of common subexpression elimination, dead code elimination,

More information

SSA Based Mobile Code: Construction and Empirical Evaluation

SSA Based Mobile Code: Construction and Empirical Evaluation SSA Based Mobile Code: Construction and Empirical Evaluation Wolfram Amme Friedrich Schiller University Jena, Germany Michael Franz Universit of California, Irvine, USA Jeffery von Ronne Universtity of

More information

CS 6371: Advanced Programming Languages

CS 6371: Advanced Programming Languages CS 6371: Advanced Programming Languages Dr. Kevin Hamlen Spring 2017 Fill out, sign, and return prereq forms: Course number: CS 6371 Section: 1 Prerequisites: CS 5343: Algorithm Analysis & Data Structures

More information

Multistage Interconnection Networks for Data Centers

Multistage Interconnection Networks for Data Centers Multistage Interconnection Networks for Data Centers Bidirectional Fat Tree Construction and Routing for IEEE 8.au Cyriel Minkenberg & Mitch Gusat IBM Research GmbH, Zurich The origin of the term fat tree

More information

Supplementary Test 1

Supplementary Test 1 Name: Please fill in your Student Number and Name. Student Number : Student Number: University of Cape Town ~ Department of Computer Science Computer Science 1015F ~ 2009 Supplementary Test 1 Question

More information

Definition of DJ (Diminished Java)

Definition of DJ (Diminished Java) Definition of DJ (Diminished Java) version 0.5 Jay Ligatti 1 Introduction DJ is a small programming language similar to Java. DJ has been designed to try to satisfy two opposing goals: 1. DJ is a complete

More information

Global Optimization. Lecture Outline. Global flow analysis. Global constant propagation. Liveness analysis. Local Optimization. Global Optimization

Global Optimization. Lecture Outline. Global flow analysis. Global constant propagation. Liveness analysis. Local Optimization. Global Optimization Lecture Outline Global Optimization Global flow analysis Global constant propagation Liveness analysis Compiler Design I (2011) 2 Local Optimization Recall the simple basic-block optimizations Constant

More information

Dependence and Data Flow Models. (c) 2007 Mauro Pezzè & Michal Young Ch 6, slide 1

Dependence and Data Flow Models. (c) 2007 Mauro Pezzè & Michal Young Ch 6, slide 1 Dependence and Data Flow Models (c) 2007 Mauro Pezzè & Michal Young Ch 6, slide 1 Why Data Flow Models? Models from Chapter 5 emphasized control Control flow graph, call graph, finite state machines We

More information

Subject Software Testing Structural Testing

Subject Software Testing Structural Testing Subject Software Testing Structural Testing Objective: 1. Understand Concept of structural testing 2. How structural (code-based or glass-box) testing complements functional (black-box) testing 3. Recognize

More information

Outline. More optimizations for our interpreter. Types for objects

Outline. More optimizations for our interpreter. Types for objects Outline More optimizations for our interpreter Types for objects Optimization Eliminate tree walks: object creation, method calls fish initialize get_ grow eat colorfish color set_color get_color pickyfish

More information

PESIT Bangalore South Campus Hosur road, 1km before Electronic City, Bengaluru -100 Department of Electronics and Communication

PESIT Bangalore South Campus Hosur road, 1km before Electronic City, Bengaluru -100 Department of Electronics and Communication USN 1 P E PESIT Bangalore South Campus Hosur road, 1km before Electronic City, Bengaluru -0 Department of Electronics and Communication INTERNAL ASSESSMENT TEST 2 Date : 4//2017 Marks: 50 Subject & Code

More information

CS110D: PROGRAMMING LANGUAGE I

CS110D: PROGRAMMING LANGUAGE I CS110D: PROGRAMMING LANGUAGE I Computer Science department Lecture 7&8: Methods Lecture Contents What is a method? Static methods Declaring and using methods Parameters Scope of declaration Overloading

More information

C++_ MARKS 40 MIN

C++_ MARKS 40 MIN C++_16.9.2018 40 MARKS 40 MIN https://tinyurl.com/ya62ayzs 1) Declaration of a pointer more than once may cause A. Error B. Abort C. Trap D. Null 2Whice is not a correct variable type in C++? A. float

More information

Advance programming and C++

Advance programming and C++ Advance programming and C++ Subject 11: Defensive Programming Dr. Miri Ben-Nissan (Kopel) 2018 2 Defensive Programming I have a lot of bugs, He has few bugs Why? 3 Defensive Programming (Cont ) I have

More information

CS 139 Practice Midterm Questions #2

CS 139 Practice Midterm Questions #2 CS 139 Practice Midterm Questions #2 Spring 2016 Name: 1. Write Java statements to accomplish each of the following. (a) Declares numbers to be an array of int s. (b) Initializes numbers to contain a reference

More information

Repe$$on CSC 121 Fall 2015 Howard Rosenthal

Repe$$on CSC 121 Fall 2015 Howard Rosenthal Repe$$on CSC 121 Fall 2015 Howard Rosenthal Lesson Goals Learn the following three repetition methods, their similarities and differences, and how to avoid common errors when using them: while do-while

More information

The class Object. Lecture CS1122 Summer 2008

The class Object.  Lecture CS1122 Summer 2008 The class Object http://www.javaworld.com/javaworld/jw-01-1999/jw-01-object.html Lecture 10 -- CS1122 Summer 2008 Review Object is at the top of every hierarchy. Every class in Java has an IS-A relationship

More information

FINALTERM EXAMINATION Fall 2009 CS301- Data Structures Question No: 1 ( Marks: 1 ) - Please choose one The data of the problem is of 2GB and the hard

FINALTERM EXAMINATION Fall 2009 CS301- Data Structures Question No: 1 ( Marks: 1 ) - Please choose one The data of the problem is of 2GB and the hard FINALTERM EXAMINATION Fall 2009 CS301- Data Structures Question No: 1 The data of the problem is of 2GB and the hard disk is of 1GB capacity, to solve this problem we should Use better data structures

More information