Simple example. Analysis of programs with pointers. Points-to relation. Program model. Points-to graph. Ordering on points-to relation

Size: px
Start display at page:

Download "Simple example. Analysis of programs with pointers. Points-to relation. Program model. Points-to graph. Ordering on points-to relation"

Transcription

1 Simle eamle Analsis of rograms with ointers := 5 tr *tr := 9 := rogram S1 S2 S3 S4 deendences What are the deendences in this rogram? Problem: just looking at variable names will not give ou the correct information After statement S2, rogram names and *tr are both eressions that refer to the same memor location. We sa that tr oints-to after statement S2. In a C-like language that has ointers, we must know the oints-to relation to be able to determine deendences correctl Program model For now, onl tes are int and int* No hea All ointers oint to onl to stack variables No rocedure or function calls involving ointer variables: address: co: load: store: Arbitrar comutations involving ints Points-to relation Directed grah: nodes are rogram variables edge (a,b): variable a oints-to variable b tr Can use a secial node to reresent NULL Points-to relation is different at different rogram oints Points-to grah Out-degree of node ma be more than one if oints-to grah has edges (a,b) and (a,c), it means that variable a ma oint to either b or c deending on how we got to that oint, one or the other will be true ath-sensitive analses: track how ou got to a rogram oint (we will not do this) if () then else := &z.. := &z Ordering on oints-to relation Subset ordering: for a given set of variables Least element is grah with no edges 1 <= 2 if 2 has all the edges 1 has and mabe some more iven two oints-to relations 1 and 2 1 U 2: least grah that contains all the edges in 1 and in 2 What does oint to here?

2 Overview Eamle We will look at three different oints-to analses. Flow-sensitive oints-to analsis Dataflow analsis Comutes a different oints-to relation at each oint in rogram Flow-insensitive oints-to analsis Comutes a single oints-to grah for entire rogram Andersen s algorithm Natural simlification of flow-sensitive algorithm Steensgard s algorithm Nodes in tree are equivalence classes of variables if ma oint-to either or z, ut and z in the same equivalence class Points-to relation is a tree with edges from children to arents rather than a general grah Less recise than Andersen s algorithm but faster := &z tr tr tr z w tr z w Andersen s algorithm tr, Flow-sensitive algorithm z,w Steensgard s algorithm Notation Suose S and S1 are set-d variables. S! S1: strong udate set assignment S U! S1: weak udate set union: this is like S! S U S1 Flow-sensitive algorithm Dataflow equations Dataflow equations (contd.) Forward flow, an ath analsis Confluence oerator: 1 U 2 = with t ()! { = with t ()! U t(a) for all a in t() = with t ()! { = with t ()! t() = with t ()! U t(a) for all a in t() = with t (a) U! t() for all a in t() = with t ()! t() = with t (a) U! t() for all a in t() strong udates weak udate (wh?)

3 Strong vs. weak udates Strong udate: At assignment statement, ou know recisel which variable is being written to Eamle: :=. You can remove oints-to information about coming into the statement in the dataflow analsis. Weak udate: You do not know recisel which variable is being udated; onl that it is one among some set of variables. Eamle: * := Problem: at analsis time, ou ma not know which variable oints to (see slide on control-flow and out-degree of nodes) Refinement: if out-degree of in oints-to grah is 1 and is known not be nil, we can do a strong udate even for * := Structures Structure tes struct cell {int ; struct cell *left, *right; struct cell,; Use a field-sensitive model and are nodes each node has three internal fields labeled, left, right This reresentation ermits ointers into fields of structures If this is not necessar, we can siml have a node for each structure and label outgoing edges with field name Eamle int main(void) { struct cell {int ; struct cell *; ; struct cell,,z,*; int sum;. = 5;. = &;. = 6;. = &z; z. = 7; z. = NULL; = &; sum = 0; while (!= NULL) { sum = sum + (*).; = (*).; return sum; z NULL z NULL Flow-insensitive algorithms Flow-insensitive analsis Andersen s algorithm Flow-sensitive analsis comutes a different grah at each rogram oint. This can be quite eensive. One alternative: flow-insensitive analsis Intuition:comute a oints-to relation which is the least uer bound of all the oints-to relations comuted b the flowsensitive analsis Aroach: Ignore control-flow Consider all assignment statements together relace strong udates in dataflow equations with weak udates Comute a single oints-to relation that holds regardless of the order in which assignment statements are actuall eecuted = with t() U! { = with t() U! t() = with t() U! t(a) for all a in t() weak udates onl = with t(a) U! t() for all a in t()

4 int main(void) { struct cell {int ; struct cell *; ; struct cell,,z,*; int sum;. = 5;. = &;. = 6;. = &z; z. = 7; z. = NULL; = &; sum = 0; while (!= NULL) { return sum; sum = sum + (*).; = (*).; Eamle. = &;. = &z; z. = NULL; = &; = (*).; Assignments for flow-insensitive analsis... Solution to flow-insensitive equations z NULL - Comare with oints-to grahs for flow-sensitive solution - Wh does oint-to NULL in this grah? Andersen s algorithm formulated using set constraints Steensgard s algorithm Flow-insensitive Comutes a oints-to grah in which there is no fan-out In oints-to grah roduced b Andersen s algorithm, if oints-to and z, and z are collased into an equivalence class Less accurate than Andersen s but faster We can eloit this to design an O(N*!(N)) algorithm, where N is the number of statements in the rogram. Steensgard s algorithm using set constraints Trick for one-ass rocessing Consider the following equations No fan-out When first equation on left is rocessed, and are not ointing to anthing. Once second equation is rocessed, we need to go back and rerocess first equation. Trick to avoid doing this: when rocessing first equation, if and are not ointing to anthing, create a dumm node and make and oint to that this is like solving the sstem on the right It is eas to show that this avoids the need for revisiting equations.

5 Algorithm Auiliar methods Can be imlemented in single ass through rogram Algorithm uses union-find to maintain equivalence classes (sets) of nodes Points-to relation is imlemented as a ointer from a variable to a reresentative of a set Basic oerations for union find: re(v): find the node that is the reresentative of the set that v is in union(v1,v2): create a set containing elements in sets containing v1 and v2, and return reresentative of that set class var { //instance variables! oints_to: var;! name: string; //constructor; also creates singleton set in union-find data structure var(string); //class method; also creates singleton set in union-find data structure make-dumm-var():var; //instance methods! get_t(): var;! set_t(var);//udates re rec_union(var v1, var v2) {! 1 = t(re(v1));! 2 = t(re(v2));! t1 = union(re(v1), re(v2));! if (1 == 2)!! return;! else if (1!= null && 2!= null)!! t2 = rec_union(1, 2);! else if (1!= null) t2 = 1;! else if (2!= null) t2 = 2;! else t2 = null;! t1.set_t(t2);! return t1; t(var v) {! //v does not have to be reresentative! t = re(v);! return t.get_t(); Algorithm Initialization: make each rogram variable into an object of te var and enter object into union-find data structure for each statement S in the rogram do S is : {if (t() == null).set-t(re()); else rec-union(t(),); S is : {if (t() == null and t() == null).set-t(var.make-dumm-var());.set-t(rec-union(t(),t())); S is :{if (t() == null).set-t(var.make-dumm-var()); var a := t(); if(t(a) == null) a.set-t(var.make-dumm-var());.set-t(rec-union(t(),t(a))); S is :{if (t() == null).set-t(var.make-dumm-var()); var a := t(); if(t(a) == null) a.set-t(var.make-dumm-var());.set-t(rec-union(t(),t(a))); Inter-rocedural analsis What do we do if there are function calls? 1 = &a swa(1, 1) 2 = &a swa(2, 2) Two aroaches Contet-sensitive aroach: treat each function call searatel just like real rogram eecution would roblem: what do we do for recursive functions? need to aroimate Contet-insensitive aroach: merge information from all call sites of a articular function in effect, inter-rocedural analsis roblem is reduced to intra-rocedural analsis roblem Contet-sensitive aroach is obviousl more accurate but also more eensive to comute Contet-insensitive aroach 1 = &a swa(1, 1) 2 = &a swa(2, 2)

6 Contet-sensitive aroach Contet-insensitive/Flow-insensitive Analsis 1 = &a swa(1, 1) 2 = &a swa(2, 2) For now, assume we do not have function arameters this means we know all the call sites for a given function Set u equations for binding of actual and formal arameters at each call site for that function use same variables for formal arameters for all call sites Intuition: each invocation rovides a new set of constraints to formal arameters Swa eamle Hea allocation 1 = &a 1 = 1 2 = 1 2 = &a 1 = 2 2 = 2 Simlest solution: use one node in oints-to grah to reresent all hea cells More elaborate solution: use a different node for each malloc site in the rogram Even more elaborate solution: shae analsis goal: summarize otentiall infinite data structures but kee around enough information so we can disambiguate ointers from stack into the hea, if ossible Summar Less recise More recise Equalit-based Subset-based Histor of oints-to analsis Flow-insensitive Flow-sensitive Contet-insensitive Contet-sensitive No consensus about which technique to use Eerience: if ou are contet-insensitive, ou might as well be flow-insensitive from Rder and Raside

Simple example. Analysis of programs with pointers. Program model. Points-to relation

Simple example. Analysis of programs with pointers. Program model. Points-to relation Simple eample Analsis of programs with pointers := 5 ptr := & *ptr := 9 := program S1 S2 S3 S4 What are the defs and uses of in this program? Problem: just looking at variable names will not give ou the

More information

Points-to Analysis. Xiaokang Qiu Purdue University. November 16, ECE 468 Adapted from Kulkarni 2012

Points-to Analysis. Xiaokang Qiu Purdue University. November 16, ECE 468 Adapted from Kulkarni 2012 Points-to Analysis Xiaokang Qiu Purdue University ECE 468 Adapted from Kulkarni 2012 November 16, 2016 Simple example x := 5 ptr := @x *ptr := 9 y := x program S1 S2 S3 S4 dependences What are the dependences

More information

Classes. Code Generation for Objects. Compiling Methods. Dynamic Dispatch. The Need for Dispatching CS412/CS413

Classes. Code Generation for Objects. Compiling Methods. Dynamic Dispatch. The Need for Dispatching CS412/CS413 Classes CS4/CS43 Introduction to Comilers Tim Teitelbaum Lecture : Imlementing Objects 8 March 5 Comonents ields/instance variables values ma dier rom object to object usuall mutable methods values shared

More information

Storage Allocation CSE 143. Pointers, Arrays, and Dynamic Storage Allocation. Pointer Variables. Pointers: Review. Pointers and Types

Storage Allocation CSE 143. Pointers, Arrays, and Dynamic Storage Allocation. Pointer Variables. Pointers: Review. Pointers and Types CSE 143 Pointers, Arrays, and Dynamic Storage Allocation [Chater 4,. 148-157, 172-177] Storage Allocation Storage (memory) is a linear array of cells (bytes) Objects of different tyes often reuire differing

More information

CS 450: COMPUTER GRAPHICS 2D TRANSFORMATIONS SPRING 2016 DR. MICHAEL J. REALE

CS 450: COMPUTER GRAPHICS 2D TRANSFORMATIONS SPRING 2016 DR. MICHAEL J. REALE CS 45: COMUTER GRAHICS 2D TRANSFORMATIONS SRING 26 DR. MICHAEL J. REALE INTRODUCTION Now that we hae some linear algebra under our resectie belts, we can start ug it in grahics! So far, for each rimitie,

More information

Linear Data Structure Linked List

Linear Data Structure Linked List . Definition. Reresenting List in C. Imlementing the oerations a. Inserting a node b. Deleting a node c. List Traversal. Linked imlementation of Stack 5. Linked imlementation of Queue 6. Circular List

More information

Pointers CMPE-013/L. Pointers. Pointers What do they do? Pointers What are pointers? Gabriel Hugh Elkaim Winter 2014

Pointers CMPE-013/L. Pointers. Pointers What do they do? Pointers What are pointers? Gabriel Hugh Elkaim Winter 2014 CMPE-013/L A Variable's versus A Variable's Value In some situations, we will want to work with a variable's address in memor, rather than the value it contains Gabriel Hugh Elkaim Winter 2014 Variable

More information

Chapter 8: Adaptive Networks

Chapter 8: Adaptive Networks Chater : Adative Networks Introduction (.1) Architecture (.2) Backroagation for Feedforward Networks (.3) Jyh-Shing Roger Jang et al., Neuro-Fuzzy and Soft Comuting: A Comutational Aroach to Learning and

More information

Equality-Based Translation Validator for LLVM

Equality-Based Translation Validator for LLVM Equality-Based Translation Validator for LLVM Michael Ste, Ross Tate, and Sorin Lerner University of California, San Diego {mste,rtate,lerner@cs.ucsd.edu Abstract. We udated our Peggy tool, reviously resented

More information

Identity-sensitive Points-to Analysis for the Dynamic Behavior of JavaScript Objects

Identity-sensitive Points-to Analysis for the Dynamic Behavior of JavaScript Objects Identity-sensitive Points-to Analysis for the Dynamic Behavior of JavaScrit Objects Shiyi Wei and Barbara G. Ryder Deartment of Comuter Science, Virginia Tech, Blacksburg, VA, USA. {wei,ryder}@cs.vt.edu

More information

Pointer Analysis. What is Points-to Analysis? Outline. What is Points-to Analysis? What is Points-to Analysis? What is Pointer Analysis? Rupesh Nasre.

Pointer Analysis. What is Points-to Analysis? Outline. What is Points-to Analysis? What is Points-to Analysis? What is Pointer Analysis? Rupesh Nasre. Pointer Analysis What is? Ruesh Nasre. CS6843 Analysis IIT Madras Jan 2016 = a; if ( == *) { } else { } a oints to x 4 Outline What is? Introduction Pointer analysis as a DFA rolem Design decisions analysis,

More information

Introduction to Shape and Pointer Analysis

Introduction to Shape and Pointer Analysis Introduction to Shape and Pointer Analsis CS 502 Lecture 11 10/30/08 Some slides adapted from Nielson, Nielson, Hankin Principles of Program Analsis Analsis of the Heap Thus far, we have focussed on control

More information

CS 548: COMPUTER GRAPHICS DRAWING LINES AND CIRCLES SPRING 2015 DR. MICHAEL J. REALE

CS 548: COMPUTER GRAPHICS DRAWING LINES AND CIRCLES SPRING 2015 DR. MICHAEL J. REALE CS 548: COMPUTER GRAPHICS DRAWING LINES AND CIRCLES SPRING 05 DR. MICHAEL J. REALE OPENGL POINTS AND LINES OPENGL POINTS AND LINES In OenGL, there are different constants used to indicate what ind of rimitive

More information

Computer Graphics. Computer Graphics. Lecture 3 Line & Circle Drawing

Computer Graphics. Computer Graphics. Lecture 3 Line & Circle Drawing Comuter Grahics Comuter Grahics Lecture 3 Line & Circle Drawing Comuter Grahics Towards the Ideal Line We can onl do a discrete aroimation Illuminate iels as close to the true ath as ossible, consider

More information

Sensitivity Analysis for an Optimal Routing Policy in an Ad Hoc Wireless Network

Sensitivity Analysis for an Optimal Routing Policy in an Ad Hoc Wireless Network 1 Sensitivity Analysis for an Otimal Routing Policy in an Ad Hoc Wireless Network Tara Javidi and Demosthenis Teneketzis Deartment of Electrical Engineering and Comuter Science University of Michigan Ann

More information

Lecture 7: Objects (Chapter 15) CS 1110 Introduction to Computing Using Python

Lecture 7: Objects (Chapter 15) CS 1110 Introduction to Computing Using Python htt://www.cs.cornell.edu/courses/cs1110/2018s Lecture 7: Objects (Chater 15) CS 1110 Introduction to Comuting Using Python [E. Andersen, A. Bracy, D. Gries, L. Lee, S. Marschner, C. Van Loan, W. White]

More information

Chapter 7b - Point Estimation and Sampling Distributions

Chapter 7b - Point Estimation and Sampling Distributions Chater 7b - Point Estimation and Samling Distributions Chater 7 (b) Point Estimation and Samling Distributions Point estimation is a form of statistical inference. In oint estimation we use the data from

More information

Shuigeng Zhou. May 18, 2016 School of Computer Science Fudan University

Shuigeng Zhou. May 18, 2016 School of Computer Science Fudan University Query Processing Shuigeng Zhou May 18, 2016 School of Comuter Science Fudan University Overview Outline Measures of Query Cost Selection Oeration Sorting Join Oeration Other Oerations Evaluation of Exressions

More information

search(i): Returns an element in the data structure associated with key i

search(i): Returns an element in the data structure associated with key i CS161 Lecture 7 inary Search Trees Scribes: Ilan Goodman, Vishnu Sundaresan (2015), Date: October 17, 2017 Virginia Williams (2016), and Wilbur Yang (2016), G. Valiant Adated From Virginia Williams lecture

More information

Gabriel Hugh Elkaim Spring CMPE 013/L: C Programming. CMPE 013/L: C Programming

Gabriel Hugh Elkaim Spring CMPE 013/L: C Programming. CMPE 013/L: C Programming 1 CMPE 013/L Gabriel Hugh Elkaim Sring 2013 2 A Variable's versus A Variable's Value In some situations, we will want to work with a variable's address in memor, rather than the value it contains Variable

More information

Lecture 8: Orthogonal Range Searching

Lecture 8: Orthogonal Range Searching CPS234 Comutational Geometry Setember 22nd, 2005 Lecture 8: Orthogonal Range Searching Lecturer: Pankaj K. Agarwal Scribe: Mason F. Matthews 8.1 Range Searching The general roblem of range searching is

More information

Directed File Transfer Scheduling

Directed File Transfer Scheduling Directed File Transfer Scheduling Weizhen Mao Deartment of Comuter Science The College of William and Mary Williamsburg, Virginia 387-8795 wm@cs.wm.edu Abstract The file transfer scheduling roblem was

More information

Lecture06: Pointers 4/1/2013

Lecture06: Pointers 4/1/2013 Lecture06: Pointers 4/1/2013 Slides modified from Yin Lou, Cornell CS2022: Introduction to C 1 Pointers A ointer is a variable that contains the (memory) address of another variable What is a memory address?

More information

Example: Runtime Memory Allocation: Example: Dynamical Memory Allocation: Some Comments: Allocate and free dynamic memory

Example: Runtime Memory Allocation: Example: Dynamical Memory Allocation: Some Comments: Allocate and free dynamic memory Runtime Memory Allocation: Examle: All external and static variables Global systemcontrol Suose we want to design a rogram for handling student information: tyedef struct { All dynamically allocated variables

More information

Cascade 2.0. C static analysis tool with an SMT backend. Wei Wang, Clark Barrett, Thomas Wies

Cascade 2.0. C static analysis tool with an SMT backend. Wei Wang, Clark Barrett, Thomas Wies Cascade 2.0 C static analysis tool with an SMT backend Wei Wang, Clark Barrett, Thomas Wies htt://cascade.cims.nyu.edu Overview Memory models Flat memory model Burstall memory model Partition memory model

More information

CS335 Fall 2007 Graphics and Multimedia. 2D Drawings: Lines

CS335 Fall 2007 Graphics and Multimedia. 2D Drawings: Lines CS335 Fall 007 Grahics and Multimedia D Drawings: Lines Primitive Drawing Oerations Digital Concets of Drawing in Raster Arras PIXEL is a single arra element at x, - No smaller drawing unit exists Px,

More information

Optimizing Dynamic Memory Management!

Optimizing Dynamic Memory Management! Otimizing Dynamic Memory Management! 1 Goals of this Lecture! Hel you learn about:" Details of K&R hea mgr" Hea mgr otimizations related to Assignment #6" Faster free() via doubly-linked list, redundant

More information

CMSC 425: Lecture 16 Motion Planning: Basic Concepts

CMSC 425: Lecture 16 Motion Planning: Basic Concepts : Lecture 16 Motion lanning: Basic Concets eading: Today s material comes from various sources, including AI Game rogramming Wisdom 2 by S. abin and lanning Algorithms by S. M. LaValle (Chats. 4 and 5).

More information

1.5 Case Study. dynamic connectivity quick find quick union improvements applications

1.5 Case Study. dynamic connectivity quick find quick union improvements applications . Case Study dynamic connectivity quick find quick union imrovements alications Subtext of today s lecture (and this course) Stes to develoing a usable algorithm. Model the roblem. Find an algorithm to

More information

Remember: The equation of projection. Imaging Geometry 1. Basic Geometric Coordinate Transforms. C306 Martin Jagersand

Remember: The equation of projection. Imaging Geometry 1. Basic Geometric Coordinate Transforms. C306 Martin Jagersand Imaging Geometr 1. Basic Geometric Coordinate Transorms emember: The equation o rojection Cartesian coordinates: (,, z) ( z, z ) C36 Martin Jagersand How do we develo a consistent mathematical ramework

More information

Synthesis of FSMs on the Basis of Reusable Hardware Templates

Synthesis of FSMs on the Basis of Reusable Hardware Templates Proceedings of the 6th WSEAS Int. Conf. on Systems Theory & Scientific Comutation, Elounda, Greece, August -3, 006 (09-4) Synthesis of FSMs on the Basis of Reusable Hardware Temlates VALERY SKLYAROV, IOULIIA

More information

AUTOMATIC GENERATION OF HIGH THROUGHPUT ENERGY EFFICIENT STREAMING ARCHITECTURES FOR ARBITRARY FIXED PERMUTATIONS. Ren Chen and Viktor K.

AUTOMATIC GENERATION OF HIGH THROUGHPUT ENERGY EFFICIENT STREAMING ARCHITECTURES FOR ARBITRARY FIXED PERMUTATIONS. Ren Chen and Viktor K. inuts er clock cycle Streaming ermutation oututs er clock cycle AUTOMATIC GENERATION OF HIGH THROUGHPUT ENERGY EFFICIENT STREAMING ARCHITECTURES FOR ARBITRARY FIXED PERMUTATIONS Ren Chen and Viktor K.

More information

Extracting Optimal Paths from Roadmaps for Motion Planning

Extracting Optimal Paths from Roadmaps for Motion Planning Extracting Otimal Paths from Roadmas for Motion Planning Jinsuck Kim Roger A. Pearce Nancy M. Amato Deartment of Comuter Science Texas A&M University College Station, TX 843 jinsuckk,ra231,amato @cs.tamu.edu

More information

10 File System Mass Storage Structure Mass Storage Systems Mass Storage Structure Mass Storage Structure FILE SYSTEM 1

10 File System Mass Storage Structure Mass Storage Systems Mass Storage Structure Mass Storage Structure FILE SYSTEM 1 10 File System 1 We will examine this chater in three subtitles: Mass Storage Systems OERATING SYSTEMS FILE SYSTEM 1 File System Interface File System Imlementation 10.1.1 Mass Storage Structure 3 2 10.1

More information

521493S Computer Graphics Exercise 3 (Chapters 6-8)

521493S Computer Graphics Exercise 3 (Chapters 6-8) 521493S Comuter Grahics Exercise 3 (Chaters 6-8) 1 Most grahics systems and APIs use the simle lighting and reflection models that we introduced for olygon rendering Describe the ways in which each of

More information

Information Flow Based Event Distribution Middleware

Information Flow Based Event Distribution Middleware Information Flow Based Event Distribution Middleware Guruduth Banavar 1, Marc Kalan 1, Kelly Shaw 2, Robert E. Strom 1, Daniel C. Sturman 1, and Wei Tao 3 1 IBM T. J. Watson Research Center Hawthorne,

More information

Operations on Singly (Simply) Linked Lists

Operations on Singly (Simply) Linked Lists LEC. 4 College of Information Technology / Software Deartment.. Data Structures / Second Class / 2016-2017 InsertFirst Oerations on Singly (Simly) Linked Lists The insertfirst() method of LinkList inserts

More information

10. Multiprocessor Scheduling (Advanced)

10. Multiprocessor Scheduling (Advanced) 10. Multirocessor Scheduling (Advanced) Oerating System: Three Easy Pieces AOS@UC 1 Multirocessor Scheduling The rise of the multicore rocessor is the source of multirocessorscheduling roliferation. w

More information

m/c Con up Flt Chip up up Carriers (C) Modules Global-Rigorous

m/c Con up Flt Chip up up Carriers (C) Modules Global-Rigorous 5 6 7 8 9 Move Fifo Elev Frisc Elli Sort Vier TMS i85 m/c on up Flt hi up up Secication Data: arriers () 6 6 6 57 6 96 Modules 7 7 5 5 5 L ma 5 5 5 6 Number of Registers Obtained: Global-Rigorous 6 8 7

More information

Object and Native Code Thread Mobility Among Heterogeneous Computers

Object and Native Code Thread Mobility Among Heterogeneous Computers Object and Native Code Thread Mobility Among Heterogeneous Comuters Bjarne Steensgaard Eric Jul Microsoft Research DIKU (Det. of Comuter Science) One Microsoft Way University of Coenhagen Redmond, WA 98052

More information

To Do. Computer Graphics (Fall 2004) Course Outline. Course Outline. Motivation. Motivation

To Do. Computer Graphics (Fall 2004) Course Outline. Course Outline. Motivation. Motivation Comuter Grahics (Fall 24) COMS 416, Lecture 3: ransformations 1 htt://www.cs.columbia.edu/~cs416 o Do Start (thinking about) assignment 1 Much of information ou need is in this lecture (slides) Ask A NOW

More information

Lecture 18. Today, we will discuss developing algorithms for a basic model for parallel computing the Parallel Random Access Machine (PRAM) model.

Lecture 18. Today, we will discuss developing algorithms for a basic model for parallel computing the Parallel Random Access Machine (PRAM) model. U.C. Berkeley CS273: Parallel and Distributed Theory Lecture 18 Professor Satish Rao Lecturer: Satish Rao Last revised Scribe so far: Satish Rao (following revious lecture notes quite closely. Lecture

More information

Cross products Line segments The convex combination of two distinct points p

Cross products Line segments The convex combination of two distinct points p CHAPTER Comutational Geometry Is the branch of comuter science that studies algorithms for solving geometric roblems. Has alications in many fields, including comuter grahics robotics, VLSI design comuter

More information

OMNI: An Efficient Overlay Multicast. Infrastructure for Real-time Applications

OMNI: An Efficient Overlay Multicast. Infrastructure for Real-time Applications OMNI: An Efficient Overlay Multicast Infrastructure for Real-time Alications Suman Banerjee, Christoher Kommareddy, Koushik Kar, Bobby Bhattacharjee, Samir Khuller Abstract We consider an overlay architecture

More information

Improved heuristics for the single machine scheduling problem with linear early and quadratic tardy penalties

Improved heuristics for the single machine scheduling problem with linear early and quadratic tardy penalties Imroved heuristics for the single machine scheduling roblem with linear early and quadratic tardy enalties Jorge M. S. Valente* LIAAD INESC Porto LA, Faculdade de Economia, Universidade do Porto Postal

More information

Who. Winter Compiler Construction Generic compiler structure. Mailing list and forum. IC compiler. How

Who. Winter Compiler Construction Generic compiler structure. Mailing list and forum. IC compiler. How Winter 2007-2008 Comiler Construction 0368-3133 Mooly Sagiv and Roman Manevich School of Comuter Science Tel-Aviv University Who Roman Manevich Schreiber Oen-sace (basement) Tel: 640-5358 rumster@ost.tau.ac.il

More information

Lecture 2: Fixed-Radius Near Neighbors and Geometric Basics

Lecture 2: Fixed-Radius Near Neighbors and Geometric Basics structure arises in many alications of geometry. The dual structure, called a Delaunay triangulation also has many interesting roerties. Figure 3: Voronoi diagram and Delaunay triangulation. Search: Geometric

More information

Using Permuted States and Validated Simulation to Analyze Conflict Rates in Optimistic Replication

Using Permuted States and Validated Simulation to Analyze Conflict Rates in Optimistic Replication Using Permuted States and Validated Simulation to Analyze Conflict Rates in Otimistic Relication An-I A. Wang Comuter Science Deartment Florida State University Geoff H. Kuenning Comuter Science Deartment

More information

PREDICTING LINKS IN LARGE COAUTHORSHIP NETWORKS

PREDICTING LINKS IN LARGE COAUTHORSHIP NETWORKS PREDICTING LINKS IN LARGE COAUTHORSHIP NETWORKS Kevin Miller, Vivian Lin, and Rui Zhang Grou ID: 5 1. INTRODUCTION The roblem we are trying to solve is redicting future links or recovering missing links

More information

Lecture 3: Geometric Algorithms(Convex sets, Divide & Conquer Algo.)

Lecture 3: Geometric Algorithms(Convex sets, Divide & Conquer Algo.) Advanced Algorithms Fall 2015 Lecture 3: Geometric Algorithms(Convex sets, Divide & Conuer Algo.) Faculty: K.R. Chowdhary : Professor of CS Disclaimer: These notes have not been subjected to the usual

More information

Automatic Editing with Hard and Soft Edits Some First Experiences

Automatic Editing with Hard and Soft Edits Some First Experiences WP 39 ENGLIH ONLY UNITED NATION ECONOMIC COMMIION FOR EUROPE CONFERENCE OF EUROPEAN TATITICIAN Wor ession on tatistical Data Editing (Oslo, Norway, 4-6 etember ) Toic (vi): New and emerging methods Automatic

More information

Query-Directed Adaptive Heap Cloning for Optimizing Compilers

Query-Directed Adaptive Heap Cloning for Optimizing Compilers Query-Directed Adative Hea Cloning for Otimizing Comilers Yulei Sui Yue Li Jingling Xue Programming Languages and Comilers Grou School of Comuter Science and Engineering University of New South Wales,

More information

I ACCEPT NO RESPONSIBILITY FOR ERRORS ON THIS SHEET. I assume that E = (V ).

I ACCEPT NO RESPONSIBILITY FOR ERRORS ON THIS SHEET. I assume that E = (V ). 1 I ACCEPT NO RESPONSIBILITY FOR ERRORS ON THIS SHEET. I assume that E = (V ). Data structures Sorting Binary heas are imlemented using a hea-ordered balanced binary tree. Binomial heas use a collection

More information

Stereo Disparity Estimation in Moment Space

Stereo Disparity Estimation in Moment Space Stereo Disarity Estimation in oment Sace Angeline Pang Faculty of Information Technology, ultimedia University, 63 Cyberjaya, alaysia. angeline.ang@mmu.edu.my R. ukundan Deartment of Comuter Science, University

More information

22. Swaping: Policies

22. Swaping: Policies 22. Swaing: Policies Oerating System: Three Easy Pieces 1 Beyond Physical Memory: Policies Memory ressure forces the OS to start aging out ages to make room for actively-used ages. Deciding which age to

More information

arxiv: v1 [cs.mm] 18 Jan 2016

arxiv: v1 [cs.mm] 18 Jan 2016 Lossless Intra Coding in with 3-ta Filters Saeed R. Alvar a, Fatih Kamisli a a Deartment of Electrical and Electronics Engineering, Middle East Technical University, Turkey arxiv:1601.04473v1 [cs.mm] 18

More information

Modified Bloom filter for high performance hybrid NoSQL systems

Modified Bloom filter for high performance hybrid NoSQL systems odified Bloom filter for high erformance hybrid NoSQL systems A.B.Vavrenyuk, N.P.Vasilyev, V.V.akarov, K.A.atyukhin,..Rovnyagin, A.A.Skitev National Research Nuclear University EPhI (oscow Engineering

More information

Source level Unrolling of Loops Containing Pointers and Array References

Source level Unrolling of Loops Containing Pointers and Array References Source level Unrolling of Loos Containing Pointers and Array References Yosi Ben Asher Jawad Haj-Yihia CS deartment, Haifa University, Israel. yosi@cs.haifa.ac.il, jawad.haj-yihia@intel.com Abstract We

More information

Simulating Ocean Currents. Simulating Galaxy Evolution

Simulating Ocean Currents. Simulating Galaxy Evolution Simulating Ocean Currents (a) Cross sections (b) Satial discretization of a cross section Model as two-dimensional grids Discretize in sace and time finer satial and temoral resolution => greater accuracy

More information

TRANSVERSAL LASER ROAD PROFILER

TRANSVERSAL LASER ROAD PROFILER Nonconventional Technologies Review Romania, December, 014 014 Romanian Association of Nonconventional Technologies TRANSVERSAL LASER ROAD PROFILER M. N. Tautan 1, S. Miclos, D. Savastru 3 and A. Stoica

More information

Review. Type equivalence. Java declarations. Type equivalence. Declared vs. implicit subtyping. CS 412 Introduction to Compilers

Review. Type equivalence. Java declarations. Type equivalence. Declared vs. implicit subtyping. CS 412 Introduction to Compilers CS 412 Introdution to Comilers Andrew Mers Cornell Universit Leture 21: Subting 16 Marh 01 Review Multile imlementations suorted b subting Subting harateried b new judgement: S

More information

IMS Network Deployment Cost Optimization Based on Flow-Based Traffic Model

IMS Network Deployment Cost Optimization Based on Flow-Based Traffic Model IMS Network Deloyment Cost Otimization Based on Flow-Based Traffic Model Jie Xiao, Changcheng Huang and James Yan Deartment of Systems and Comuter Engineering, Carleton University, Ottawa, Canada {jiexiao,

More information

30. Condition Variables

30. Condition Variables 30. Condition Variables Oerating System: Three Easy Pieces AOS@UC 1 Condition Variables There are many cases where a thread wishes to check whether a condition is true before continuing its execution.

More information

A Concise Workbook for College Algebra

A Concise Workbook for College Algebra City University of New York (CUNY) CUNY Academic Works Oen Educational Resources Queensborough Community College Summer 6--08 A Concise Workbook for College Algebra Fei Ye Queensborough Community College

More information

The Rest of the Course More DFA and Model Checking

The Rest of the Course More DFA and Model Checking The Rest of the Course More DFA and Model Checking Tuesday, Dec. 6: Guest Lecture Thursday, Dec. 8: Guest Lecture Final Exam Wednesday, Dec. 14 @ 10:30-12:30 Prof. Leon Osterweil CS 521-621 Fall Semester

More information

11/2/2010. In the last lecture. Monte-Carlo Ray Tracing : Path Tracing. Today. Shadow ray towards the light at each vertex. Path Tracing : algorithm

11/2/2010. In the last lecture. Monte-Carlo Ray Tracing : Path Tracing. Today. Shadow ray towards the light at each vertex. Path Tracing : algorithm Comuter Grahics Global Illumination: Monte-Carlo Ray Tracing and Photon Maing Lecture 11 In the last lecture We did ray tracing and radiosity Ray tracing is good to render secular objects but cannot handle

More information

Experimental Comparison of Shortest Path Approaches for Timetable Information

Experimental Comparison of Shortest Path Approaches for Timetable Information Exerimental Comarison of Shortest Path roaches for Timetable Information Evangelia Pyrga Frank Schulz Dorothea Wagner Christos Zaroliagis bstract We consider two aroaches that model timetable information

More information

Complexity Issues on Designing Tridiagonal Solvers on 2-Dimensional Mesh Interconnection Networks

Complexity Issues on Designing Tridiagonal Solvers on 2-Dimensional Mesh Interconnection Networks Journal of Comuting and Information Technology - CIT 8, 2000, 1, 1 12 1 Comlexity Issues on Designing Tridiagonal Solvers on 2-Dimensional Mesh Interconnection Networks Eunice E. Santos Deartment of Electrical

More information

Truth Trees. Truth Tree Fundamentals

Truth Trees. Truth Tree Fundamentals Truth Trees 1 True Tree Fundamentals 2 Testing Grous of Statements for Consistency 3 Testing Arguments in Proositional Logic 4 Proving Invalidity in Predicate Logic Answers to Selected Exercises Truth

More information

Cross products. p 2 p. p p1 p2. p 1. Line segments The convex combination of two distinct points p1 ( x1, such that for some real number with 0 1,

Cross products. p 2 p. p p1 p2. p 1. Line segments The convex combination of two distinct points p1 ( x1, such that for some real number with 0 1, CHAPTER 33 Comutational Geometry Is the branch of comuter science that studies algorithms for solving geometric roblems. Has alications in many fields, including comuter grahics robotics, VLSI design comuter

More information

Definition. Pointers. Outline. Why pointers? Definition. Memory Organization Overview. by Ziad Kobti. Definition. Pointers enable programmers to:

Definition. Pointers. Outline. Why pointers? Definition. Memory Organization Overview. by Ziad Kobti. Definition. Pointers enable programmers to: Pointers by Ziad Kobti Deinition When you declare a variable o any tye, say: int = ; The system will automatically allocated the required memory sace in a seciic location (tained by the system) to store

More information

Perception of Shape from Shading

Perception of Shape from Shading 1 Percetion of Shae from Shading Continuous image brightness variation due to shae variations is called shading Our ercetion of shae deends on shading Circular region on left is erceived as a flat disk

More information

CASCH - a Scheduling Algorithm for "High Level"-Synthesis

CASCH - a Scheduling Algorithm for High Level-Synthesis CASCH a Scheduling Algorithm for "High Level"Synthesis P. Gutberlet H. Krämer W. Rosenstiel Comuter Science Research Center at the University of Karlsruhe (FZI) HaidundNeuStr. 1014, 7500 Karlsruhe, F.R.G.

More information

COMPARING CURVATURE ESTIMATION TECHNIQUES

COMPARING CURVATURE ESTIMATION TECHNIQUES COMPARIG CURVATURE ESTIMATIO TECHIQUES eandro F. Estrozi, Andréa G. Camos, uiz G. Rios, Roberto M. Cesar Jr., and uciano da F. Costa - Cybernetic Vision Research Grou, IFSC-USP, Caia Postal 9, CEP 5-97

More information

32. Common Concurrency Problems.

32. Common Concurrency Problems. 32. Common Concurrency Problems. Oerating System: Three Easy Pieces AOS@UC 1 Common Concurrency Problems More recent work focuses on studying other tyes of common concurrency bugs. w Take a brief look

More information

Efficient Parallel Hierarchical Clustering

Efficient Parallel Hierarchical Clustering Efficient Parallel Hierarchical Clustering Manoranjan Dash 1,SimonaPetrutiu, and Peter Scheuermann 1 Deartment of Information Systems, School of Comuter Engineering, Nanyang Technological University, Singaore

More information

SIMULATION SYSTEM MODELING FOR MASS CUSTOMIZATION MANUFACTURING

SIMULATION SYSTEM MODELING FOR MASS CUSTOMIZATION MANUFACTURING Proceedings of the 2002 Winter Simulation Conference E. Yücesan, C.-H. Chen, J. L. Snowdon, and J. M. Charnes, eds.. SIMULATION SYSTEM MODELING FOR MASS CUSTOMIATION MANUFACTURING Guixiu Qiao Charles McLean

More information

Generating Social Network Features for Link-based Classification

Generating Social Network Features for Link-based Classification Generating Social Network Features for Link-based Classification Jun Karamon 1, Yutaka Matsuo 2, Hikaru Yamamoto 3, and Mitsuru Ishizuka 1 1 The University of Tokyo, 7-3-1 Hongo Bunkyo-ku Tokyo, Jaan,

More information

Efficient Processing of Top-k Dominating Queries on Multi-Dimensional Data

Efficient Processing of Top-k Dominating Queries on Multi-Dimensional Data Efficient Processing of To-k Dominating Queries on Multi-Dimensional Data Man Lung Yiu Deartment of Comuter Science Aalborg University DK-922 Aalborg, Denmark mly@cs.aau.dk Nikos Mamoulis Deartment of

More information

Non-Strict Independence-Based Program Parallelization Using Sharing and Freeness Information

Non-Strict Independence-Based Program Parallelization Using Sharing and Freeness Information Non-Strict Indeendence-Based Program Parallelization Using Sharing and Freeness Information Daniel Cabeza Gras 1 and Manuel V. Hermenegildo 1,2 Abstract The current ubiuity of multi-core rocessors has

More information

Matlab Virtual Reality Simulations for optimizations and rapid prototyping of flexible lines systems

Matlab Virtual Reality Simulations for optimizations and rapid prototyping of flexible lines systems Matlab Virtual Reality Simulations for otimizations and raid rototying of flexible lines systems VAMVU PETRE, BARBU CAMELIA, POP MARIA Deartment of Automation, Comuters, Electrical Engineering and Energetics

More information

Space-efficient Region Filling in Raster Graphics

Space-efficient Region Filling in Raster Graphics "The Visual Comuter: An International Journal of Comuter Grahics" (submitted July 13, 1992; revised December 7, 1992; acceted in Aril 16, 1993) Sace-efficient Region Filling in Raster Grahics Dominik Henrich

More information

MATHEMATICAL MODELING OF COMPLEX MULTI-COMPONENT MOVEMENTS AND OPTICAL METHOD OF MEASUREMENT

MATHEMATICAL MODELING OF COMPLEX MULTI-COMPONENT MOVEMENTS AND OPTICAL METHOD OF MEASUREMENT MATHEMATICAL MODELING OF COMPLE MULTI-COMPONENT MOVEMENTS AND OPTICAL METHOD OF MEASUREMENT V.N. Nesterov JSC Samara Electromechanical Plant, Samara, Russia Abstract. The rovisions of the concet of a multi-comonent

More information

split split (a) (b) split split (c) (d)

split split (a) (b) split split (c) (d) International Journal of Foundations of Comuter Science c World Scientic Publishing Comany ON COST-OPTIMAL MERGE OF TWO INTRANSITIVE SORTED SEQUENCES JIE WU Deartment of Comuter Science and Engineering

More information

CS 1110 Final, December 7th, 2017

CS 1110 Final, December 7th, 2017 CS 1110 Final, December 7th, 2017 This 150-minute exam has 8 questions worth a total of 100 oints. Scan the whole test before starting. Budget your time wisely. Use the back of the ages if you need more

More information

Raster Graphics Algorithms

Raster Graphics Algorithms Overview of Grahics Pieline Raster Grahics Algorithms D scene atabase traverse geometric moel transform to worl sace transform to ee sace scan conversion Line rasterization Bresenham s Mioint line algorithm

More information

Parallel Flow-Sensitive Pointer Analysis by Graph-Rewriting

Parallel Flow-Sensitive Pointer Analysis by Graph-Rewriting Parae Fow-Sensitive Pointer Anaysis by Grah-Rewriting Vaivaswatha Nagaraj R. Govindarajan Indian Institute of Science, Bangaore PACT 2013 2 Outine Introduction Background Fow-sensitive grah-rewriting formuation

More information

A New and Efficient Algorithm-Based Fault Tolerance Scheme for A Million Way Parallelism

A New and Efficient Algorithm-Based Fault Tolerance Scheme for A Million Way Parallelism A New and Efficient Algorithm-Based Fault Tolerance Scheme for A Million Way Parallelism Erlin Yao, Mingyu Chen, Rui Wang, Wenli Zhang, Guangming Tan Key Laboratory of Comuter System and Architecture Institute

More information

Grouping of Patches in Progressive Radiosity

Grouping of Patches in Progressive Radiosity Grouing of Patches in Progressive Radiosity Arjan J.F. Kok * Abstract The radiosity method can be imroved by (adatively) grouing small neighboring atches into grous. Comutations normally done for searate

More information

10. Parallel Methods for Data Sorting

10. Parallel Methods for Data Sorting 10. Parallel Methods for Data Sorting 10. Parallel Methods for Data Sorting... 1 10.1. Parallelizing Princiles... 10.. Scaling Parallel Comutations... 10.3. Bubble Sort...3 10.3.1. Sequential Algorithm...3

More information

28. Locks. Operating System: Three Easy Pieces

28. Locks. Operating System: Three Easy Pieces 28. Locks Oerating System: Three Easy Pieces AOS@UC 1 Locks: The Basic Idea Ensure that any critical section executes as if it were a single atomic instruction. w An examle: the canonical udate of a shared

More information

Parallel Construction of Multidimensional Binary Search Trees. Ibraheem Al-furaih, Srinivas Aluru, Sanjay Goil Sanjay Ranka

Parallel Construction of Multidimensional Binary Search Trees. Ibraheem Al-furaih, Srinivas Aluru, Sanjay Goil Sanjay Ranka Parallel Construction of Multidimensional Binary Search Trees Ibraheem Al-furaih, Srinivas Aluru, Sanjay Goil Sanjay Ranka School of CIS and School of CISE Northeast Parallel Architectures Center Syracuse

More information

CMSC 754 Computational Geometry 1

CMSC 754 Computational Geometry 1 CMSC 754 Comutational Geometry 1 David M. Mount Deartment of Comuter Science University of Maryland Fall 2002 1 Coyright, David M. Mount, 2002, Det. of Comuter Science, University of Maryland, College

More information

Distributed Estimation from Relative Measurements in Sensor Networks

Distributed Estimation from Relative Measurements in Sensor Networks Distributed Estimation from Relative Measurements in Sensor Networks #Prabir Barooah and João P. Hesanha Abstract We consider the roblem of estimating vectorvalued variables from noisy relative measurements.

More information

Improving Trust Estimates in Planning Domains with Rare Failure Events

Improving Trust Estimates in Planning Domains with Rare Failure Events Imroving Trust Estimates in Planning Domains with Rare Failure Events Colin M. Potts and Kurt D. Krebsbach Det. of Mathematics and Comuter Science Lawrence University Aleton, Wisconsin 54911 USA {colin.m.otts,

More information

CMPE-013/L. Introduction to C Programming

CMPE-013/L. Introduction to C Programming CMPE-013/L Introduction to C Programming Gabriel Hugh Elkaim Winter 2015 and memory Pointer/array equivalency Pointer arithmetic and the stack and strings Arrays of ointers 1 Syntax tye *trname; How to

More information

Introduction to Parallel Algorithms

Introduction to Parallel Algorithms CS 1762 Fall, 2011 1 Introduction to Parallel Algorithms Introduction to Parallel Algorithms ECE 1762 Algorithms and Data Structures Fall Semester, 2011 1 Preliminaries Since the early 1990s, there has

More information

15. Address Translation

15. Address Translation 15. Address Translation Oerating System: Three Easy Pieces AOS@UC 1 Memory Virtualizing with Efficiency and Control Memory virtualizing takes a similar strategy known as limited direct execution(lde) for

More information

Source-to-Source Code Generation Based on Pattern Matching and Dynamic Programming

Source-to-Source Code Generation Based on Pattern Matching and Dynamic Programming Source-to-Source Code Generation Based on Pattern Matching and Dynamic Programming Weimin Chen, Volker Turau TR-93-047 August, 1993 Abstract This aer introduces a new technique for source-to-source code

More information

Control plane and data plane. Computing systems now. Glacial process of innovation made worse by standards process. Computing systems once upon a time

Control plane and data plane. Computing systems now. Glacial process of innovation made worse by standards process. Computing systems once upon a time Classical work Architecture A A A Intro to SDN A A Oerating A Secialized Packet A A Oerating Secialized Packet A A A Oerating A Secialized Packet A A Oerating A Secialized Packet Oerating Secialized Packet

More information