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

Size: px
Start display at page:

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

Transcription

1 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. Abstract. JavaScrit object behavior is dynamic and adheres to rototyebased inheritance. The behavior of a JavaScrit object can be changed by adding and removing roerties at runtime. Points-to analysis calculates the set of values a reference roerty or variable may have during execution. We resent a novel, artially flow-sensitive, context-sensitive oints-to algorithm that accurately models dynamic changes in object behavior. The algorithm reresents objects by their creation sites and local roerty names; it tracks roerty udates via a new control-flow grah reresentation. The calling context is comrised of the receiver object, its local roerties and rototye chain. We comare the new oints-to algorithm with an existing JavaScrit oints-to algorithm in terms of their resective erformance and accuracy on a client alication. The exerimental results on real JavaScrit websites show that the new oints-to analysis significantly imroves recision, uniquely resolving on average 11% more roerty looku statements. Keywords: JavaScrit, rogram analysis, oints-to analysis 1 Introduction Dynamic rogramming languages, including JavaScrit, Ruby and PHP, are widely used in develoing sohisticated software systems, esecially web alications. These languages share several dynamic features, including dynamic code generation and dynamic tying, used in real-world rograms [19]. For examle, JavaScrit code can be generated at runtime using eval and JavaScrit functions can be variadic (i.e., functions can be called with different numbers of arguments). Desite the oularity of these dynamic languages, there is insufficient tool suort for develoing and testing rograms because their dynamic features render many traditional analyses, and tools which deend on them, ineffective. In addition, instead of class-based inheritance JavaScrit suorts rototyebased inheritance [15, 26] that results in a JavaScrit object inheriting roerties from a chain of (at least one) rototye objects. The model also allows the roerties of a JavaScrit object to be added, udated, or deleted at runtime. This means that JavaScrit objects can exhibit different behaviors at different

2 2 times during execution. Moreover, object constructors may be olymorhic so that objects created by the same constructor may have distinct roerties. These asects of JavaScrit further comlicate tool building. Some tools have been develoed to suort JavaScrit software develoment (e.g., [18, 21]). Points-to analysis is the enabling analysis for such tools. Researchers have roosed several oints-to analyses that handle different features of JavaScrit (e.g., [8, 16, 25]). Nevertheless, there are oortunities to significantly imrove the recision of oints-to analysis through better modeling of object roerty set changes. In this aer, we resent a novel oints-to algorithm that can accurately model JavaScrit objects. Changes to object roerties are tracked more accurately to reflect object run-time behavior at different rogram oints. A new grah decomosition for control-flow grahs is used to better track object roerty changes. Prototye-based inheritance is more accurately modeled to locate delegated roerties. The analysis identifies objects by their creation site as well as their local roerty names uon construction, more accurately than the er-creation-site reresentation. To distinguish olymorhic constructors, this analysis can incororate dynamic information collected at runtime (see Section 3.6). Technically, the analysis is artially flow-sensitive (on our new controlflow grah structure) and context-sensitive, using a new form of object sensitivity [17]. 1 Rather than using the receiver object creation site as a calling context in the analysis, we use an aroximation of the receiver object and its roerties at the call site (i.e., object identity). In order to comare this algorithm with revious techniques, we instantiated our new oints-to analysis as the static comonent of the JavaScrit Blended Analysis Framework (JSBAF) [27]. Blended analysis collects run-time information through instrumentation to define the calling structure used by a subsequent static analysis, and to cature dynamically generated code. It has been demonstrated that blended analysis is ractical and effective on JavaScrit rograms [27]. We measured the erformance and accuracy of our new analysis on a statement-level oints-to client (REF analysis) that calculates how many objects are returned by a roerty looku (e.g., a read of x.). The major contributions of this work are: We have designed a novel identity-sensitive oints-to analysis that accurately and safely handles dynamic changes in the behavior of JavaScrit objects. This algorithm resents a new rogram reresentation that enables artially flow-sensitive analysis, a more accurate object reresentation, and an exanded oints-to grah that facilitates strong udates on the statements changing object roerties. 1 Informally, a flow-sensitive analysis follows the execution order of statements in a rogram; a flow-sensitive analysis can erform strong udates, but a flow-insensitive one cannot. A context-sensitive analysis distinguishes between different calling contexts of a method, roducing different analysis results for each context [20, 23]. A context-insensitive analysis calculates one solution er method.

3 3 Exerimental results from our new analysis comared to a recent ointsto analysis [25], both imlemented in JSBAF, showed that identity-sensitive analysis significantly imroved recision. On average over all the benchmarks (i.e., 12 oular websites), 48% of the roerty looku statements were resolved to a single object by our new analysis, while the existing analysis [25] uniquely resolved only 37% of these statements. Although our analysis incurred a 135% time overhead on average to achieve the increased recision, it was able to analyze each of the rograms in the benchmarks in under 5 minutes, attesting to its scalability in ractice. Overview. Section 2 defines the notion of object identity and then uses an examle to illustrate the sources of imrecision in JavaScrit oints-to analysis. Section 3 describes our new oints-to analysis algorithm and imlementation. Section 4 resents the REF analysis and the exerimental results. Section 5 discusses related work, and Section 6 offers conclusions and future work. 2 Background In this section we define key concets using an examle to illustrate the sources of imrecision in current oints-to analyses for JavaScrit. 2.1 JavaScrit Object Identity JavaScrit is a dynamically tyed rogramming language whose object behavior can change as object roerties are added or deleted at runtime. In strongly tyed rogramming languages, the notion of tye is used to abstract the ossible behavior of an object (e.g., the class of an object in Java) [22]; however, in dynamically tyed languages, the tye of an object can change during execution. In order to avoid confusion, we call the tye of a JavaScrit object its object identity. 2 Definition 1. The identity of an object at a rogram oint denotes all of its accessible roerties and their non-rimitive values. The accessible roerties of an object conform to the roerty looku mechanism imlemented in JavaScrit. Every JavaScrit object includes an internal reference to its rototye object from which it inherits non-local roerties. A JavaScrit object may have a sequence of rototye objects (i.e., a rototye chain) whose roerties it can inherit. When reading a roerty of an object o, the JavaScrit runtime checks the local roerties of o to see if o has a roerty named. If not, the JavaScrit runtime checks to see if the rototye object of o has a roerty named, continuing to check along the rototye chain from object to object until the roerty is found (or not) [7]. 2 This general notion can be used for other dynamic languages and is related to structured tying for strongly tyed languages [22].

4 4 Definition 2. Identity-udate statements are: (1) roerty write statement (i.e., x. = y or x[ ] = y), (2) roerty delete statement (i.e., delete x. or delete x[ ]), and (3) an invocation that directly or indirectly results in execution of (1) and/or (2). The identity-udate statements are the set of statements in JavaScrit that may affect the object identities. In Figure 1, we illustrate the identity of an object with an examle. Figure 1 shows the objects connected to O 1 at a rogram oint. The local roerties of object O 1 are named 1 and 2 and O 4 is its rototye object. O 7 is visible from O 1 by accessing O 1. 4 while O 6 is not visible from O 1 by accessing O 1. 2 because a local roerty named 2 exists for O 1. To sum u, the shaded nodes (i.e., O 6 and O 9 ) are not accessible from O 1 and the unshaded nodes constitute O 1 s identity. O _roto_ O 6 2 O 2 _roto_ O 3 O 4 _roto_ 4 O 7 O 5 O 9 4 O 8 Fig. 1: Object identity for O 1. (Unshaded nodes only) 2.2 Imrecision of Points-to Analysis A flow-insensitive analysis may roduce imrecise results when object identity changes, because it must safely aroximate oints-to relations and it cannot do strong udates. Existing context-sensitive analyses may roduce imrecise results because they lack the ower to distinguish between different object identities for the same JavaScrit object. In Figure 2, we resent a JavaScrit examle to illustrate the sources of imrecision of a flow-insensitive, context-insensitive oints-to analysis resulting from several dynamic features of JavaScrit. We also demonstrate that an existing context-sensitive analysis using the same object reresentation as [17] is ineffective at distinguishing the function calls in the examle. Lines 2-6 show a constructor function X(). Objects created by X() may or may not have the local roerty named or q (lines 4 and 5) deending on the value of its argument. The statement in line 12 udates the value of local roerty of an object ointed to by x if exists; otherwise, the statement adds the local roerty named to the object. Figures 3(a) and 3(b) show the oints-to grahs that reflect the run-time behavior of this code. We use the line number to reresent the object created (e.g., the object created at line 7 (new X) is O 7 ). We focus on two rogram oints in the execution, lines 10 and 15. The nodes O 7, O 4, and O 3 and O 9 constitute the identity of O 7 at line 10 and the nodes O 7, O 12, O 3 and O 14 constitute the identity of O 7 at line 15. Note that

5 5 1 function P(){ this. = new Y1(); } 2 function X(b){ 3 this. roto = new P(); 4 if(b) { this. = new Y2(); } 5 else this.q = new Y3(); 6 } 7 var x = new X(true); 8 x.bar = function(v, z){ v.f = z; } 9 var z1 = new Z(); 10 x.bar(x., z1); x. = new A(); var z2 = new Z(); 15 x.bar(x.,z2); Fig. 2: JavaScrit examle. O 1 is not visible from O 7 at lines 10 or 15 because of the existence of the local roerty named. The identity of object O 7 is different at these two rogram oints. Constructor olymorhism (lines 2-6), object roerty change (line 12) and function invocations (lines 10 and 15) in the examle make recise static ointsto analysis hard to achieve with current techniques. Figure 3(c) shows a oints-to grah for the examle built by a flow- and context-insensitive oints-to analysis. Dashed nodes and edges are imrecise oints-to relations that cannot exist at runtime. There are several sources of imrecision. Line 7 creates an object ointed to by variable x by invoking the olymorhic constructor X(). Not knowing the value of b, static analysis conservatively builds all the oints-to relations ossible from execution of X(). 3 When reading the roerty of x (line 10), static analysis returns objects O 4 and O 1 because a conservative analysis cannot distinguish whether or not O 4 actually exists. Furthermore, because of the imrecise result of the read of x., invoking the bar() function results in imrecise roerty reference from O 1 to O 9. Flow-insensitive oints-to analysis simly adds O 12 to O 7. (line 12) because it cannot erform strong udates. Because the analysis does not distinguish which objects v and z oint to on different calls of bar(), line 15 results in additional imrecision with resect to O 4.f and O 12.f. Flow-sensitive analysis is not sufficient to resolve the imrecision in the examle without an aroriate context for call sites. First, indirect assignment statements cannot be strongly udated in general. Second, assuming x. is strongly udated to oint to O 12 at line 12, a context-insensitive analysis does not remove the imrecise edges (< O 4, f >, O 14 ) and (< O 12, f >, O 9 ) because calls to bar() (lines 10 and 15) are not distinguished by calling contexts. Object sensitivity [17] 3 In this short examle, constant roagation of arameters would hel static analysis recision but clearly this is not always ossible.

6 6 x O 7 O 3 _roto_ O 4 v z f O 9 O 1 O O 4 5 q x O 7 _roto_ f f x v z1 (a) O 12 O 7 O 3 _roto_ z2 O 14 f O 1 z z1 z z2 f O 3 O 9 O 14 f O 12 f f O 1 v z1 O 9 (b) (c) Fig. 3: Imrecision of static oints-to analysis. (a) Run-time oints-to grah at line 10. (b) Run-time oints-to grah at line 15. (c) Flow- and context-insensitive oints-to grah. has been shown to erform better than call-string context sensitivity [23] for the idioms used in object-oriented languages [14]. However, object-sensitive analysis is not able to differentiate these two call sites because they have the same receiver object O 7, which has two different identities at these call sites. Our new oints-to analysis is designed to handle these constructs more accurately and to address the challenges raised by object identity udating and rototye-based inheritance. 3 Identity-sensitive Points-to Analysis In this section we will resent our identity-sensitive oints-to analysis for JavaScrit. We will exlain key ideas used in the analysis, including the intra-rocedural rogram reresentation (i.e., the block-sensitive decomosition of control-flow grahs), the solution sace (i.e., the annotated oints-to grah with access ath edges and in-construction nodes), the transfer functions of the identity-udate statements as well as the identity-reserving statements, identity sensitivity (i.e., a form of context sensitivity based on object sensitivity that catures changes in object behavior during execution) and block sensitivity (i.e., a artial flow sensitivity erformed on the transformed CFG). Finally, we will discuss the imlementation details of our algorithm.

7 7 3.1 Identity-Preserving Block Grah A flow-insensitivie analysis ignores the control flow of a rogram while a flowsensitive analysis tyically uses an intra-rocedural control-flow grah (CFG). Our analysis aims to rovide a better model of a JavaScrit object whose identity exhibits flow-sensitive characteristics (e.g., allowing addition and deletion of object roerties at any rogram oint). Cognizant of the ossible overhead introduced by a fully flow-sensitive analysis, we designed a artially flow-sensitive analysis that only erforms strong udates when ossible on identity-udate statements using a transformed CFG, called the Identity-Preserving Block Grah (IPBG). Recall that the identity-udate statements, including the roerty write (i.e., add or udate a roerty) and delete (i.e., remove a roerty), directly change the object identity in JavaScrit; all other statements (e.g., roerty read) are identity-reserving statements. Figure 4 shows an examle IPBG (Figure 4(b)) comared to its original CFG (Figure 4(a)). An IPBG is a transformed control-flow grah whose basic blocks are aggregated into region nodes according to whether or not they contain an object identity-udate statement. The IPBG also contains identity-udate statements as secial singleton statement nodes (i.e., identity-udate nodes). An examle of a region node (i.e., identity-reserving node) is in Figure 4(b) whereas node x = new A() is an examle of a identity-udate node. Note that in creating singleton nodes the algorithm breaks aart former basic blocks (e.g., 1 {1, x = new A(), 1 }). 1 x = new A(); delete x.; red: a, b red: b succ: a a x = new A(); b delete x.; succ: a 9 red: b succ: a, b 9 succ: a, b (a) (b) Fig. 4: IPBG generation. (a) CFG. (b) IPBG. We first slit any basic blocks in the CFG that contain at least an identityudate statement (see Definition 2 in Section 2), obtaining a slit-cfg. Identityudate statements (1) and (2) can be detected syntactically and invocations that may result in an identity change (i.e., category (3)) are found by a linear

8 8 call grah traversal. 4 We then use a variant of the standard CFG construction algorithm [1] to build the slit-cfg. The header nodes used include the standard headers [1] lus (i) any identity-udate statement is a region header of an identity-udate node containing only that statement, and (ii) any identityreserving statement that immediately follows an identity-udate statement is a region header of an identity-reserving node. In an IPBG, identity-reserving region nodes are formed based on grouing nodes in the slit-cfg that share the same control-flow relations with resect to identity-udate nodes. The ossible control-flow relations of node n 1 and n 2 in a slit-cfg include: (1) n 1 is a successor of n 2, (2) n 1 is a redecessor of n 2, (3) n 1 is both a successor and a redecessor of n 2 (i.e., n 1 and n 2 exist in a loo) and (4) n 1 and n 2 have no control-flow relation (e.g., n 1 and n 2 are resent in different branches). We label each node in a slit-cfg with its relations to each identity-udate node via deth-first searches. The set of labels form a signature for that node. If nodes share the same signature it means that they have the same control-flow relationshi(s) to a (set of) identity-udate statement(s) so that they can be collased to an identity-reserving node in the IPBG. Figure 4(b) shows the signatures of the identity-reserving regions in the generated IPBG; a and b reresent the identity-udate statements x=new A() and delete x., resectively. Basic blocks 2, 4, 5 and 7 are aggregated because they only aear as successors of x=new A() and have no control-flow relation to delete x.. The region node is not further aggregated with basic block 9 because 9 is a successor of delete x. but is not. 3.2 Points-to Grah Reresentation Our oints-to grah reresentation includes constructs that facilitate the handling of strong udates by our analysis. Our algorithm design allows strong udates when ossible for identity-udate statements. In contrast, most flowsensitive Java analysis algorithms cannot erform strong udates for indirect assignment statements (e.g., x. = y) and few analyses consider roerty delete statements, which are uncommon in object-oriented languages. Two existing techniques hel to enable strong udates for such statements in JavaScrit: recency abstraction and access ath mas. Recency abstraction [2, 11] associates two memory-regions with each allocation site. The most-recently-allocated block, a concrete memory-region, allows strong udates and the not-most-recently-allocated block is a summary memoryregion. We adat the idea of recency abstraction to enable strong udates during analysis of constructor functions. De et al. [6] erformed strong udates at indirect assignments by comuting the ma from access aths (i.e., a variable followed a sequence of roerty accesses) to sets of abstract objects. This work demonstrated the validity of using access ath mas to erform strong udates for indirect write statements in 4 Our analysis requires a re-comuted call grah as inut. See Section 3.6 for details.

9 9 node N variable v v abstract object O o oints-to grah G variable reference v O (v, φo) edge roerty reference O i O j E (< φo i, >, φo j) annotation access ath v O (< v, >, φo) d annotation v d A * annotation * O i O j Table 1: Exanded oints-to grah with annotations. Java. We adat this aroach to oints-to analysis for JavaScrit by exanding the oints-to grah reresentation instead of using searate mas. Table 1 lists the nodes, edges and annotations in our oints-to grah. In addition to variable nodes v and abstract object nodes o, our oints-to grah contains in-construction object 5 Details of the in-construction objects will be discussed in Section 3.3. For sake of simlicity, we use φo to reresent either kind of object node (i.e., o There are three kinds of edges. Variable reference and roerty reference edges exist in a traditional oints-to grah. An access ath edge, (< v, >, φo), denotes that the roerty of variable v refers to object φo. < v, > reresents an access ath with length of 2 (i.e., a variable followed by one field access v.). 6 Our analysis calculates may ointer information, meaning that a oints-to edge in the grah may or may not exist at runtime. To better aroximate the identities of JavaScrit objects, we introduce annotations on roerty reference edges as well as access ath edges. The annotations hel to calculate must exist information for object roerty names. In our analysis, the d annotation on a roerty name (i.e., d ) denotes that the local roerty named must not exist. This annotation only alies to access ath edges in our oints-to grah. The other annotation,, alies to both roerty reference edges and access ath edges. denotes that the local roerty named may not exist. Proerty reference edges without annotation or access ath edges without annotation 5 Similar to the recency abstraction, an in-construction object always describes exactly one concrete object. In our analysis, it exists only during analysis of a constructor. 6 The length of an access ath is one more than the number of field accesses [6]. d

10 10 reresent must exist information for the roerty names. We use φ to reresent any kind of d, or edge. These annotated edges hel us erform a more accurate roerty looku (see Section 3.3). P t(x) denotes the oints-to set of x and P t(< φo, >) denotes the oints-to set of the roerty of φo. P t(< v, >) denotes the oints-to set of access ath v.. We also define the oeration Alias(v) which returns the set of variables W such that v and w W oint to the same object. aset(v) denotes the set of all access ath edges of v (i.e., aset(v) = q : {(< v, q φ >, φo)}). In addition to the oints-to grah, we use a maing data structure to store intermediate information in the analysis. The ma M is used to record the list of roerty names when an object is constructed. An abstract object (e.g., o) is the key in M whose value is the set of local roerty names that exist when the constructor function of the abstract object returns (e.g., {1, 2, 3}). 3.3 Points-to Analysis Transfer Functions In this section we describe the data-flow transfer functions for the statements shown in Table 2. Object creation (x = new X(a 1, a 2,..., a n )). In our analysis, an object creation statement (i.e., new statement) is modeled in three stes. x = new X creates an in-construction i. Then the invocation of the constructor new X((a 1, a 2,..., a n )) is modeled as a function call i. Uon the return of the constructor (i.e., ret X ), the analysis removes the in-construction object from the oints-to grah and redirects all oints-to relations i to an abstract object i )). If the local roerty set of the in-construction object matches that of an existing abstract object with the same allocation site, the inconstruction object is merged into the abstract object; otherwise, a new abstract object is created to relace the in-construction object. There is at most one inconstruction object for each creation site. 7 The transfer function of the object creation statement ensures that abstract objects are based on their allocation site as well as their constructed local roerties (i.e., an aroximation of actual object identity); in other words, the objects created at the same allocation site that contain the same set of local roerty names share the same abstract object in our analysis. This object reresentation is more recise than using one abstract object er creation site. Proerty write (x. = y). In general, strong udates cannot be erformed on the roerty write statement because an abstract object may summarize multile run-time objects; however, use of in-construction objects and access ath edges enable strong udates in our analysis. In the oints-to grah G, if x only refers to one object and the object is an in-construction object, we know 7 Recursive constructor calls involve the creation of an in-construction object when the in-construction object for the same allocation site already exists (before it resolves into an abstract object). In our analysis, the existing in-construction object is resolved into a secial abstract object whose set of roerties uon construction is unknown. A fixed oint calculation is done using the secial abstract object.

11 Statement Transfer function (1) x = new X : (G aset(x)) (2) new X((a1, a2,..., an)) : G {invoke(g, a1, a2,..., an)} si : x = new X(a1, a2,..., an) (3) retx : (1) if P t(x) = 1 and φoi P t(x)} : G φ >, P t(x) φoj P φ >)}) >, P t(x) φoj P t(y)} (2) otherwise : (2.1) (G {(< x, φ >, φoi) φoi P t(< x, φ >)}) {(< x, >, φoj) φoj P t(y)} x. = y (2.2) G {(< φoi, >, φoj) φoi P t(x) φoj P t(y)} (2.3) G {(< z, >, φoi) z Alias(x) P t(z, φ ) φoi P t(y)} (1) if P t(x) = 1 and φoi P t(x)} : G φ >, P t(x) φoj P φ >)} (2) otherwise : (2.1) (G {(< x, φ >, φoi) φoi P t(< x, φ >)}) {(< x, d >, null)} delete x. (2.2) G {(< φoi, >, φoj) φoi P t(x) φoj P t(< φoi, >)} {(< φoi, >, φoj) φoi P t(x) φoj P t(< φoi, >)} (2.3) G {(< z, >, φoi) z Alias(x) P t(z, ) φoi P t(< z, >)} {(< z, >, φoi) z Alias(x) P t(z, ) φoi P t(< z, >)} (G aset(x)) {(x, φoi) φoi P t(y)} x = y (G aset(x)) {(< x, φoi >) oi looku(y, )} x = y. (G aset(x)) {invoke(g, M, φoi, a1, a2,..., an) φoi P t(y) M looku(y, m)} x = y.m(a1, a2,..., an) 11 Table 2: Transfer functions of rogram statements.

12 12 that x refers to a secific concrete object. The analysis then erforms strong udates on the roerty reference edges by removing the oints-to edges in G i. (if they exist) and adding the new edges imlied by P t(y). In other cases (i.e., the cardinality of Pt(x) is more than 1 or x refers to an abstract object), we use access ath edges to enable strong udates on roerty write statements. First, the access ath of x. can be strongly udated by removing the access ath edges in G denoting x. (if they exist) and adding the new edges (e.g., (< x, >, o j ) where o j is referred to by y). Second, the object(s) x oints to are weakly udated (e.g., the edge (< o i, >, o j ) is inserted if x oints to o i and y oints to o j ). The roerty reference edges are inserted with the annotation because the roerty write statement may not affect all variables ointing to the udated object. Last, the access ath edges of the variables that have a may alias relation to x need to be weakly udated. For examle, (< z, >, o i ) is inserted to G if z may be an alias of x, and there exists at least an edge denoting z. (with or without annotation). In Figure 5, we show an examle of the effects of roerty write statement on the oints-to grah. Figure 5(a) illustrates the inut oints-to grah for the roerty write statement x. = y. In Figure 5(b), our analysis erforms a strong udate on the access ath x. (i.e., delete (< x, >, O 4 ) and add (< x, >, O 2 ), (< x, >, O 3 )) and inserts the edges (< O 1, >, O 2 ), (< O 1, >, O 3 ) (i.e., weak udates). O 3 y x O 2 O 4 O 1 z (a) * O 5 O 3 y * x * O 4 O * 2 O 1 z (b) O 5 Fig. 5: Proerty write examle. (a) Inut oints-to grah. (b) Udated oints-to grah. Proerty delete (delete x.). The transfer function of the delete statement is similar to the roerty write statement. Our analysis strongly udates the access ath edges by removing the existing edges and adding a new edge (i.e., (< x, d >, null)) that denotes x must not have a local access ath x.. When erforming weak udates on the roerty reference edges of an object o i that is referred to by x, all existing edges denoting o i. should be annotated by because the roerty named may not exist locally for o i. The same rule alies when udating the access ath edges of the aliases of x. Direct write (x = y). The effects of direct variable assignment on the ointsto grah are relatively straightforward. x = y creates oints-to edges from x to all objects ointed to by y. Note that we erform weak udates on direct

13 13 assignments. Although the analysis removes all the access ath edges of x from the oints-to grah (i.e., G - aset(x)), soundness is ensured because lookus through the abstract objects reflect less recise, yet safe aroximations. Also, the access ath edges of y cannot be coied to x because access ath edges can only be added via strong udates. Proerty read (x = y.). JavaScrit enforces an asymmetry between reading and writing roerty values. When writing the value of a roerty or deleting a roerty, JavaScrit always uses the local roerty, ignoring the rototye object. When reading a roerty of a variable (e.g., x = y.), recall that JavaScrit suorts rototye-based inheritance. In some existing oints-to analyses for JavaScrit, when reading roerty of an object, the roerty looku mechanism is modeled by reorting all roerties named in the rototye chain of the object to ensure analysis safety. Procedure 1 Otimized object roerty looku: looku(v, ) Outut: accessible objects v.: P 1: if P t(< v, >) then 2: P P t(< v, >) P t(< v, >) 3: return 4: else if P t(< v, >) or P t(< v, d >) then 5: P P t(< v, >) 6: for each object φo in looku(v, roto ) do 7: S.ush(φo) 8: end for 9: else 10: for each object φo in P t(v) do 11: S.ush(φo) 12: end for 13: end if 14: while S is not emty do 15: φo i S.o() 16: P P t(< φo i, >) P t(< φo i, >) 17: if P t(< φo i, >) = 0 and (P t(< φo i, roto >) null or P t(< φo i, roto >) null) then 18: for each object φo j in P t(< φo i, roto >) P t(< φo i, roto >) do 19: S.ush(φo j) 20: end for 21: end if 22: end while Procedure 1 illustrates our otentially more recise roerty looku rocedure enabled by our edge tyes and their annotations. This worklist algorithm iterates through all the accessible objects in the oints-to grah when roerty of variable v is read. Intuitively, it favors the use of access ath edges in roerty looku because they reflect the results of strong udates, before examining roerty reference edges. Lines 1 to 12 initialize the algorithm uon three conditions.

14 14 (1) If there exist access ath edges for v. without annotation (i.e., roerty must exist locally), the objects in the P t(< v, >) and P t(< v, >) are considered to be accessible roerties (line 2) and the algorithm returns (line 3). (2) If there exist access ath edges for v. with either annotation, the algorithm needs to looku objects in the rototye chain. In this case, the objects in the P t(< v, >) (if v. exists) are considered to be accessible roerties (line 5) and the algorithm ushes all the immediate rototye objects of v onto the worklist (lines 6 to 8). (3) Otherwise (i.e., no access ath edge for v. exists), only the abstract objects are used for looking u so that all the objects in the P t(v) are ushed onto the worklist (lines 10 to 12). Lines 14 to 22 iterate the worklist. All the objects in P t(< φo, >) and P t(< φo, >) are considered to be accessible roerties by our analysis (Line 16). Since an edge annotated with means that the roerty may not exist locally, the algorithm will continue looking u the rototye chain, until it reaches at least one oints-to edge named without annotation or the end of the rototye chain (Line 17 to 21). Thus, instead of finding all the roerties named in the rototye chain (i.e., looku all(v, )), our algorithm can sto when it finds an existing roerty (i.e., a roerty named without annotation). This new roerty looku algorithm looku(v, ) mimics the run-time roerty looku mechanism of JavaScrit while still assuring the safety of our analysis. For the examle in Figure 5(b), looku(z, ) results in O 2 and O 3 through the access ath while looku(x, ) results in O 2, O 3, O 4 and O 5 through the abstract object O 1. In Table 2, the transfer function of the roerty read statements refers to this otimized object roerty looku algorithm. Because we erform weak udates on the roerty read statements, similar to direct writes, the analysis removes all the access ath edges of x from the oints-to grah to ensure safety. Method invocation (x = y.m(a 1, a 2,..., a n )). The method invocation (e.g., x = y.m(a 1, a 2,..., a n )) resolves for every receiver object ointed to by y. The invoked methods are determined by reading the roerty y.m through our otimized looku algorithm. Uon the return of method invocation, x is weakly udated by removing all its access ath edges from G. 3.4 Identity Sensitivity Identity sensitivity for JavaScrit is a new form of context sensitivity derived from the notion of object sensitivity for languages such as Java [17]. In object sensitivity, each method is analyzed searately for each object on which it may be invoked. For strongly tyed languages like Java, often object sensitivity identifies objects in the analysis by their creation sites. Calls of a method using two different receiver objects (i.e., created at different sites) will result in two searate analyses of the method, even if the calls originated from the same call site. However, this is insufficient for JavaScrit analysis, because object behavior may change dynamically at any rogram oint during execution. Ideally, identity sensitivity would analyze each method searately for each object identity on which it may be invoked. However, the grah reresentation

15 15 O 2 _roto_ O * 1 O 3 O 1 O 5 2 * O 4 _roto_ (a) _roto_ O O 6 7 O 9 _roto_ O 1 O 4 O * _roto_ (b) O 2 O 3 O 7 Fig. 6: Aroximate object identity as a context. (a) Object identity of O 1. (b) Aroximate object identity of O 1. of object identity may contain many edges and nodes both locally and along rototye chains (e.g., object identity of O 1 in Figure 6(a)), which would be rohibitively exensive to use as a context. Therefore, we use an aroximation of the object identity of the receiver object to differentiate calls that will be analyzed searately. Our aroximation consists of the object, its local roerties and their object values lus its chain of rototye objects. In Figure 6(b) we show the aroximation corresonding to the object identity of object O 1 in Figure 6(a). Note that the edges with the same local roerty name (annotated and not annotated) in the oints-to grah are merged in the aroximate object identity (e.g., (< O 1, 1 >, O 2 ) and (< O 1, 1 >, O 3 ) in Figure 6(a)). An objectsensitive analysis grous the calls using a receiver object created at the same allocation site and our identity-sensitive analysis more accurately grous the calls where receiver objects have the same aroximate object identity. We intend to study the effects of using different object identity aroximations as calling contexts in future work. 3.5 Block-sensitive Analysis Our new oints-to analysis algorithm is a fixed oint calculation on the call grah, initialized with an emty oints-to grah on entry to the JavaScrit rogram, in which every constitutent IPBG is traversed in a flow-sensitive manner. Essentially, we have designed the oints-to algorithm to emhasize recision for the object identity information in the oints-to grah and the IPBG to hide control flow not relevant to identity udates. More secifically, our analysis solves for the oints-to grah on exit of each IPBG node. The transfer function for a node in the IPBG is one of two kinds: (1) for a identity-udate node erform strong udate of the changed roerty, if ossible (as in Table 2), or (2) for a identity-reserving node erform a flowinsensitive analysis of the statements in that node, using an initial oints-to grah (IN) and storing the fixed oint reached in oints-to grah OUT.

16 16 (a) v. d v. v. v. d v. d v. v. v. v. v. v. v. v. v. v. (b) o. o. o. o. o. o. o. o. o. o. o. o. Table 3: Union rules. (a) Access ath edges union rules. (b) Proerty reference edges union rules. Normally in a oints-to analysis, we would form IN as a union of the OUT oints-to grahs of redecessors of a node. In our algorithm, we need to maintain the invariant of our annotated roerty edges, namely that a roerty name without an annotation means that roerty exists and a roerty name with the d annotation means that roerty must not exist. Table 3 shows the union rules for the access ath edges and roerty reference edges when two oints-to grahs are unioned. For the access ath edges: (1) if access ath v. φ does not exist in at least one redecessor, then v. φ does not exist after union; (2) if v. d or v. exists in both redecessors, then v. d or v. resectively exists after union; (3) otherwise, v. exists after union. For the roerty reference edges: (1) if o. exists in both redecessors, then o. exists after union; (2) otherwise, if o. or o. exists in at least one redecessor, then o. exists after union. These rules ensure analysis safety when roerty looku is erformed. 3.6 Imlementation of Identity-sensitive Analysis in JSBAF Our new oints-to analysis was imlemented with a client as the static comonent of the JavaScrit Blended Analysis Framework (JSBAF), a general-urose analysis framework for JavaScrit [27]. This framework was designed to strongly coule dynamic and static analyses to account for the effects of the dynamic features of JavaScrit. JSBAF can be alied to analyze a JavaScrit rogram (i.e., JavaScrit code on a webage) automatically in the resence of a good test suite. The dynamic hase gathers run-time information by executing tests. A trace of each test is collected, including call statements, object creations, variadic function calls with arameters, and dynamically created code. The imlementation searates each trace into its constituent age traces. Each subtrace on a age is analyzed searately in the static hase. Data-flow solutions from different age subtraces are combined into a entire solution for that age. Blended analysis uses only the observed calling structure as a basis to model the JavaScrit rogram. Knowledge of unexecuted calls or object creations can be used to rune other unexecuted code sharing the same control deendence. For examle, knowing Y 3() is not called at line 5 in Figure 2, blended analysis runes this unexecuted statement so that the imrecise node O 5 and its connected edges will not be created. Thus, blended analysis is unsafe because not all executions are exlored, but sound on the observed executions.

17 17 Our oints-to algorithm was imlemented on the IBM T.J. Watson Libraries for Analysis (WALA) oen-source static analysis framework 8 which contains several existing static oints-to analysis algorithms. WALA has been extended to enable blended analysis by roviding dynamic information (i.e., a run-time collected call grah, dynamically generated code, object creation sites) [27]. We chose this imlementation latform because blended analysis has been demonstrated to be more efficient and effective in analyzing real JavaScrit rograms. 9 Our algorithm takes as inuts the run-time collected calling structure (i.e., call grah 10 ) and source code including dynamically generated code. Code runing was erformed on function bodies so that the code in olymorhic constructors and variadic functions was secialized. Hence, constructor olymorhism was handled by our imroved object reresentation combined with dynamic information (i.e., objects created at the same allocation site with different sets of roerty names are reresented as searate abstract objects). x O 7 O 3 _roto_ v C1 f O 1 zc1 v C2 f O 14 O f * 12 z C2 * O 7 O 3 _roto_ O 1 x z2 O 4 f * z1 (a) O 9 v C1 f z C1 O f * 4 O 9 z1 (b) Fig. 7: Blended identity-sensitive oints-to analysis. (a) oints-to grah at line 10. (b) oints-to grah at line 15. Examle. In comarison to the inaccurate oints-to solution of a flow- and context-insensitive analysis for the JavaScrit code in Figure 2, we now demonstrate the results of our identity-sensitive oints-to analysis in the context of blended analysis. Figures 7(a) and 7(b) show the oints-to grahs obtained at lines 10 and 15, resectively. Because blended analysis executes the rogram and does not observe an object created by the constructor Y3, the code at line 5 is runed so that our analysis does not generate the inaccurate node O 5 nor the edge (< O 7, q >, O 5 ). For the call statement at line 10, our oints-to analysis calculates the identity aroximation of O 7, namely C1: {O 7, :O 4, roto : O 3 }. Also, when looking u x. at line 10, our algorithm returns O 4 because there is 8 htt://wala.sourceforge.net/ 9 A static analysis was not able to finish analyzing most webages in [27]. 10 Each node in the call grah is associated with the object creations observed during its execution.

18 18 no annotation on the roerty reference edge so that further looku through the rototye chain is not necessary. Note that the oints-to grah in Figure 7(a) is as recise as the run-time oints-to grah (Figure 3(a)). At line 12, x. is strongly udated via the access ath edge (< x, >, O 12 ). For the call statement at line 15, our oints-to analysis calculates the identity aroximation of O 7, C2: {O 7, :[O 4, O 12 ], roto : O 3 }. Our oints-to algorithm distinguishes this call site from line 10 because O 7 has a different identity here. The looku of x. at line 15 follows the access ath edge so that the node O 12 is returned. Thus, in this examle our analysis results in none of the inaccurate edges in the flow- and context-insensitive analysis (Figure 3(c)) and reflects the run-time behavior of JavaScrit objects (Figure 3(b)). 4 Evaluation In this section, we resent exeriments using JSBAF with our identity-sensitive oints-to analysis comared to an existing oints-to analysis [25], evaluating both with a REF client. 4.1 Exerimental Design REF Analysis. To evaluate the recision and erformance of our oints-to analysis, we imlemented a JavaScrit reference analysis (REF). The REF client calculates the set of objects returned by roerty looku at a roerty read statement (i.e., x = y.) or call statement (i.e., x = y.(...)). 11 For each of these statements s in a function being analyzed in calling context c, we comute REF (s, c), the set of objects returned by a roerty looku for each o. where o is ointed to by y. The cardinality of the REF set deends on the recision of the oints-to grah and the roerty looku oeration; the smaller the set returned, the more useful for rogram understanding, for examle. In Figure 2, assume we add the function roerty x.foo = function(){var a = this.; return a; } Effectively, foo() returns the roerty looku result for this.. If x.foo() is called at line 11 before the roerty udate statement x.=new A(), it will return O 4. If x.foo() is called at line 13 after x.=new A(), it will return O 12. For an analysis that is flow-insensitive or that cannot distinguish these call sites by calling context, the return value of each of these function calls will contain at least two objects (i.e., O 4 and O 12 ). Comarison with Points-to Analysis in [25]. We use the term Corr to refer to a blended version of correlation-tracking oints-to analysis [25] (see Section 5 for more details) and its REF client. To demonstrate the additional 11 All source code instances of roerty lookus (e.g., return y. ) occur as one of these two statements in the WALA intermediate code.

19 19 Website Corr CorrBSIS facebook.com 38% 52% 10% 50% 47% 3% google.com 32% 51% 17% 53% 42% 5% youtube.com 41% 47% 12% 54% 41% 5% yahoo.com 48% 46% 6% 52% 45% 3% wikiedia.org 29% 45% 26% 43% 39% 18% amazon.com 45% 52% 3% 46% 51% 3% twitter.com 32% 53% 15% 39% 49% 12% blogsot.com 35% 34% 31% 53% 36% 11% linkedin.com 34% 49% 17% 44% 50% 6% msn.com 40% 36% 24% 48% 37% 15% ebay.com 30% 40% 30% 46% 40% 14% bing.com 41% 34% 25% 54% 37% 9% Average 37% 45% 18% 48% 43% 9% Table 4: REF analysis recision. recision of our analysis over Corr, we alied the correlation extraction transformation to our JavaScrit benchmarks before erforming our oints-to analysis. We use the term CorrBSIS to refer to a blended version of this augmented new oints-to analysis and its REF client. For each algorithm, an object roerty looku returns a REF set whose cardinality REF (s, c) is calculated. For Corr, the looku all() aroximate algorithm described in Section 3.3 is used. For CorrBSIS, we use our otimized looku algorithm looku() in Procedure 1. Benchmarks. We conducted the exeriments with the benchmarks collected from 12 websites among the to 25 most oular sites on alexa, reusing website traces originally used in [27]. The results in [27] showed that the collected traces covered a large ortion of the executable JavaScrit code in those websites, including dynamically generated code. Although the benchmarks we used cover the most oular websites, it will require further investigation to determine how reresentative these benchmarks are of other websites. The exerimental results were obtained on a 2.53GHz Intel Core 2 Duo MacBook Pro with 4GB memory running the Mac OS X 10.5 oerating system. 4.2 Exerimental Results Imroved REF Precision. Table 4 shows the REF client results for the 12 websites. Columns 2-4 resent the results for Corr and columns 5-7 resent the results for CorrBSIS. For each website, columns 2 & 5, 3 & 6, and 4 & 7 in Table 4 corresond to the ercentage of roerty looku statements that return 1 object, 2-4 objects, and more than 4 objects, resectively. The result shown for each website is averaged over the corresonding ercentage numbers for all the webages in that domain; for examle, the 38% entry for facebook.com in column 2 is the average for Corr over the 27 webages analyzed of the ercentage of roerty looku statements returning only 1 object.

20 20 Website Corr CorrBSIS overhead facebook % google % youtube % yahoo % wiki % amazon % twitter % blog % linkedin % msn % ebay % bing % Average % Table 5: REF analysis cost (in seconds) on average er webage. Comaring columns 2-4 with 5-7 in Table 4 for each website, we see the relative recision imrovement of CorrBSIS over Corr. For REF analysis, the best result is that the looku returns only one object and the roerty looku is more recise if the number of objects returned is smaller. On average over all the websites, Corr reorted 37% of the roerty looku statements were resolved to a single object, while CorrBSIS imroved this metric to 48%, a significant imrovement. In addition, REF analysis results may become too aroximate to be useful if too many objects are returned. Although 18% of the statements returned more than 4 objects for Corr, CorrBSIS reduced that number to 9%. These imroved recision results indicate the otential for greater ractical use of identity-sensitive oints-to information by client analyses. We also investigated the average number of objects returned by a roerty looku statement. For each website, we calculated the number of objects er statement on average over all its webages. Over all the benchmarks, Corr roduced on average 2.8 objects and CorrBSIS only reorted on average 2.3 objects. Intuitively, this means that on average fewer objects at each roerty looku statement must be examined to gain better understanding of the code. REF Performance. An analysis aroach is ractical if it scales to realworld rograms, such as JavaScrit code from actual websites. Because CorrBSIS is artially flow-sensitive and context-sensitive, it is imortant to demonstrate that this analysis is scalable. Table 5 shows the time erformance of Corr versus CorrBSIS. 12 Columns 2 and 3 resent the average webage analysis time for each website, averaging over all of its webages. Both Corr and CorrBSIS comletely analyzed all the benchmark rograms. On average over all the websites, Corr comletely analyzed a webage in 22.3 seconds, while CorrBSIS did so in The time cost in Table 5 reflects the erformance of the static hase of blended analysis. In the exeriments, the dynamic hase of Corr and CorrBSIS is the same for both analyses. The work in [27] has demonstrated that the static hase dominates the blended analysis cost.

21 Website No. of % of functions % of identity- No. of functions w/ udate(s) udate stmt contexts facebook % 8% 4.0 google % 6% 6.7 youtube % 6% 3.9 yahoo % 4% 2.4 wiki % 19% 4.8 amazon 729 6% 6% 1.9 twitter % 5% 3.4 blog % 14% 6.1 linkedin 920 8% 11% 3.6 msn % 8% 2.8 ebay % 13% 7.5 bing % 11% 4.9 Average % 9% 4.3 Table 6: Benchmark and context statistics. (Total contexts er website is aroximately column 2 times column 5.) seconds, incurring an 135% average time overhead er webage, accetable for a research rototye imlementation which has not been otimized. Discussion. We collected data characterizing benchmark rogram structure and comlexity to relate these characteristics to observed analysis recision and erformance. The entries in Table 6 all reresent averages er webage that are averaged over an entire website. Column 2 shows the average number of functions in a JavaScrit rogram. Column 3 shows the ercentage of functions containing at least one identity-udate statement. Column 4 shows the ercentage of statements that are identity-udate statements. Column 5 shows the number of contexts roduced by CorrBSIS as a multilier for column 2. On average over all the websites, 10% of the functions contained local identity-udate statement(s); these averages ranged from 4% for yahoo.com to 18% for msn.com. This suggests that the identity-udate statements are localized in a relatively small ortion of the JavaScrit rogram (e.g., in constructor functions). Manual insection of several websites (i.e., facebook, google and youtube) revealed there were significant object behavior changes in JavaScrit code outside of constructors. On average over all the websites, 9% of the statements were identified as identity-udate statements. The relatively small number of identity-udate statements means that our IPBG contained many fewer nodes than the corresonding CFGs; therefore the flow-sensitive analysis was more ractical in cost on the IPBGs. Now we comare the analysis recision observed in Table 4 with the number of contexts generated on average er function er age (column 5 in Table 6) to observe the effect of identity sensitivity. google, blog, and ebay were the websites for which CorrBSIS imroved recision the most, whereas amazon, yahooo, twitter, and msn were the websites for which CorrBSIS roduced similar results to Corr. For the former websites, CorrBSIS generated the greatest number of contexts er function er webage. For the latter websites, CorrBSIS generated the 21

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

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

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

An Indexing Framework for Structured P2P Systems

An Indexing Framework for Structured P2P Systems An Indexing Framework for Structured P2P Systems Adina Crainiceanu Prakash Linga Ashwin Machanavajjhala Johannes Gehrke Carl Lagoze Jayavel Shanmugasundaram Deartment of Comuter Science, Cornell University

More information

To appear in IEEE TKDE Title: Efficient Skyline and Top-k Retrieval in Subspaces Keywords: Skyline, Top-k, Subspace, B-tree

To appear in IEEE TKDE Title: Efficient Skyline and Top-k Retrieval in Subspaces Keywords: Skyline, Top-k, Subspace, B-tree To aear in IEEE TKDE Title: Efficient Skyline and To-k Retrieval in Subsaces Keywords: Skyline, To-k, Subsace, B-tree Contact Author: Yufei Tao (taoyf@cse.cuhk.edu.hk) Deartment of Comuter Science and

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

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

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

Multicast in Wormhole-Switched Torus Networks using Edge-Disjoint Spanning Trees 1

Multicast in Wormhole-Switched Torus Networks using Edge-Disjoint Spanning Trees 1 Multicast in Wormhole-Switched Torus Networks using Edge-Disjoint Sanning Trees 1 Honge Wang y and Douglas M. Blough z y Myricom Inc., 325 N. Santa Anita Ave., Arcadia, CA 916, z School of Electrical and

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 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

An Efficient Coding Method for Coding Region-of-Interest Locations in AVS2

An Efficient Coding Method for Coding Region-of-Interest Locations in AVS2 An Efficient Coding Method for Coding Region-of-Interest Locations in AVS2 Mingliang Chen 1, Weiyao Lin 1*, Xiaozhen Zheng 2 1 Deartment of Electronic Engineering, Shanghai Jiao Tong University, China

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

Privacy Preserving Moving KNN Queries

Privacy Preserving Moving KNN Queries Privacy Preserving Moving KNN Queries arxiv:4.76v [cs.db] 4 Ar Tanzima Hashem Lars Kulik Rui Zhang National ICT Australia, Deartment of Comuter Science and Software Engineering University of Melbourne,

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

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

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

Mitigating the Impact of Decompression Latency in L1 Compressed Data Caches via Prefetching

Mitigating the Impact of Decompression Latency in L1 Compressed Data Caches via Prefetching Mitigating the Imact of Decomression Latency in L1 Comressed Data Caches via Prefetching by Sean Rea A thesis resented to Lakehead University in artial fulfillment of the requirement for the degree of

More information

Hardware-Accelerated Formal Verification

Hardware-Accelerated Formal Verification Hardare-Accelerated Formal Verification Hiroaki Yoshida, Satoshi Morishita 3 Masahiro Fujita,. VLSI Design and Education Center (VDEC), University of Tokyo. CREST, Jaan Science and Technology Agency 3.

More information

Autonomic Physical Database Design - From Indexing to Multidimensional Clustering

Autonomic Physical Database Design - From Indexing to Multidimensional Clustering Autonomic Physical Database Design - From Indexing to Multidimensional Clustering Stehan Baumann, Kai-Uwe Sattler Databases and Information Systems Grou Technische Universität Ilmenau, Ilmenau, Germany

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

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

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

A DEA-bases Approach for Multi-objective Design of Attribute Acceptance Sampling Plans

A DEA-bases Approach for Multi-objective Design of Attribute Acceptance Sampling Plans Available online at htt://ijdea.srbiau.ac.ir Int. J. Data Enveloment Analysis (ISSN 2345-458X) Vol.5, No.2, Year 2017 Article ID IJDEA-00422, 12 ages Research Article International Journal of Data Enveloment

More information

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

Simple example. Analysis of programs with pointers. Points-to relation. Program model. Points-to graph. Ordering on points-to relation 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

More information

Submission. Verifying Properties Using Sequential ATPG

Submission. Verifying Properties Using Sequential ATPG Verifying Proerties Using Sequential ATPG Jacob A. Abraham and Vivekananda M. Vedula Comuter Engineering Research Center The University of Texas at Austin Austin, TX 78712 jaa, vivek @cerc.utexas.edu Daniel

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

Skip List Based Authenticated Data Structure in DAS Paradigm

Skip List Based Authenticated Data Structure in DAS Paradigm 009 Eighth International Conference on Grid and Cooerative Comuting Ski List Based Authenticated Data Structure in DAS Paradigm Jieing Wang,, Xiaoyong Du,. Key Laboratory of Data Engineering and Knowledge

More information

Improve Precategorized Collection Retrieval by Using Supervised Term Weighting Schemes Λ

Improve Precategorized Collection Retrieval by Using Supervised Term Weighting Schemes Λ Imrove Precategorized Collection Retrieval by Using Suervised Term Weighting Schemes Λ Ying Zhao and George Karyis University of Minnesota, Deartment of Comuter Science Minneaolis, MN 55455 Abstract The

More information

A 2D Random Walk Mobility Model for Location Management Studies in Wireless Networks Abstract: I. Introduction

A 2D Random Walk Mobility Model for Location Management Studies in Wireless Networks Abstract: I. Introduction A D Random Walk Mobility Model for Location Management Studies in Wireless Networks Kuo Hsing Chiang, RMIT University, Melbourne, Australia Nirmala Shenoy, Information Technology Deartment, RIT, Rochester,

More information

Figure 8.1: Home age taken from the examle health education site (htt:// Setember 14, 2001). 201

Figure 8.1: Home age taken from the examle health education site (htt://  Setember 14, 2001). 201 200 Chater 8 Alying the Web Interface Profiles: Examle Web Site Assessment 8.1 Introduction This chater describes the use of the rofiles develoed in Chater 6 to assess and imrove the quality of an examle

More information

Collective communication: theory, practice, and experience

Collective communication: theory, practice, and experience CONCURRENCY AND COMPUTATION: PRACTICE AND EXPERIENCE Concurrency Comutat.: Pract. Exer. 2007; 19:1749 1783 Published online 5 July 2007 in Wiley InterScience (www.interscience.wiley.com)..1206 Collective

More information

An empirical analysis of loopy belief propagation in three topologies: grids, small-world networks and random graphs

An empirical analysis of loopy belief propagation in three topologies: grids, small-world networks and random graphs An emirical analysis of looy belief roagation in three toologies: grids, small-world networks and random grahs R. Santana, A. Mendiburu and J. A. Lozano Intelligent Systems Grou Deartment of Comuter Science

More information

Collective Communication: Theory, Practice, and Experience. FLAME Working Note #22

Collective Communication: Theory, Practice, and Experience. FLAME Working Note #22 Collective Communication: Theory, Practice, and Exerience FLAME Working Note # Ernie Chan Marcel Heimlich Avi Purkayastha Robert van de Geijn Setember, 6 Abstract We discuss the design and high-erformance

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

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

Leak Detection Modeling and Simulation for Oil Pipeline with Artificial Intelligence Method

Leak Detection Modeling and Simulation for Oil Pipeline with Artificial Intelligence Method ITB J. Eng. Sci. Vol. 39 B, No. 1, 007, 1-19 1 Leak Detection Modeling and Simulation for Oil Pieline with Artificial Intelligence Method Pudjo Sukarno 1, Kuntjoro Adji Sidarto, Amoranto Trisnobudi 3,

More information

Record Route IP Traceback: Combating DoS Attacks and the Variants

Record Route IP Traceback: Combating DoS Attacks and the Variants Record Route IP Traceback: Combating DoS Attacks and the Variants Abdullah Yasin Nur, Mehmet Engin Tozal University of Louisiana at Lafayette, Lafayette, LA, US ayasinnur@louisiana.edu, metozal@louisiana.edu

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

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

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

Image Segmentation Using Topological Persistence

Image Segmentation Using Topological Persistence Image Segmentation Using Toological Persistence David Letscher and Jason Fritts Saint Louis University Deartment of Mathematics and Comuter Science {letscher, jfritts}@slu.edu Abstract. This aer resents

More information

Optimization of Collective Communication Operations in MPICH

Optimization of Collective Communication Operations in MPICH To be ublished in the International Journal of High Performance Comuting Alications, 5. c Sage Publications. Otimization of Collective Communication Oerations in MPICH Rajeev Thakur Rolf Rabenseifner William

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

Constrained Path Optimisation for Underground Mine Layout

Constrained Path Optimisation for Underground Mine Layout Constrained Path Otimisation for Underground Mine Layout M. Brazil P.A. Grossman D.H. Lee J.H. Rubinstein D.A. Thomas N.C. Wormald Abstract The major infrastructure comonent reuired to develo an underground

More information

Implementations of Partial Document Ranking Using. Inverted Files. Wai Yee Peter Wong. Dik Lun Lee

Implementations of Partial Document Ranking Using. Inverted Files. Wai Yee Peter Wong. Dik Lun Lee Imlementations of Partial Document Ranking Using Inverted Files Wai Yee Peter Wong Dik Lun Lee Deartment of Comuter and Information Science, Ohio State University, 36 Neil Ave, Columbus, Ohio 4321, U.S.A.

More information

A Petri net-based Approach to QoS-aware Configuration for Web Services

A Petri net-based Approach to QoS-aware Configuration for Web Services A Petri net-based Aroach to QoS-aware Configuration for Web s PengCheng Xiong, YuShun Fan and MengChu Zhou, Fellow, IEEE Abstract With the develoment of enterrise-wide and cross-enterrise alication integration

More information

Patterned Wafer Segmentation

Patterned Wafer Segmentation atterned Wafer Segmentation ierrick Bourgeat ab, Fabrice Meriaudeau b, Kenneth W. Tobin a, atrick Gorria b a Oak Ridge National Laboratory,.O.Box 2008, Oak Ridge, TN 37831-6011, USA b Le2i Laboratory Univ.of

More information

Relations with Relation Names as Arguments: Algebra and Calculus. Kenneth A. Ross. Columbia University.

Relations with Relation Names as Arguments: Algebra and Calculus. Kenneth A. Ross. Columbia University. Relations with Relation Names as Arguments: Algebra and Calculus Kenneth A. Ross Columbia University kar@cs.columbia.edu Abstract We consider a version of the relational model in which relation names may

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

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

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

Texture Mapping with Vector Graphics: A Nested Mipmapping Solution

Texture Mapping with Vector Graphics: A Nested Mipmapping Solution Texture Maing with Vector Grahics: A Nested Mimaing Solution Wei Zhang Yonggao Yang Song Xing Det. of Comuter Science Det. of Comuter Science Det. of Information Systems Prairie View A&M University Prairie

More information

Model-Based Annotation of Online Handwritten Datasets

Model-Based Annotation of Online Handwritten Datasets Model-Based Annotation of Online Handwritten Datasets Anand Kumar, A. Balasubramanian, Anoo Namboodiri and C.V. Jawahar Center for Visual Information Technology, International Institute of Information

More information

Semi-Supervised Learning Based Object Detection in Aerial Imagery

Semi-Supervised Learning Based Object Detection in Aerial Imagery Semi-Suervised Learning Based Obect Detection in Aerial Imagery Jian Yao Zhongfei (Mark) Zhang Deartment of Comuter Science, State University of ew York at Binghamton, Y 13905, USA yao@binghamton.edu Zhongfei@cs.binghamton.edu

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

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

Detection of Occluded Face Image using Mean Based Weight Matrix and Support Vector Machine

Detection of Occluded Face Image using Mean Based Weight Matrix and Support Vector Machine Journal of Comuter Science 8 (7): 1184-1190, 2012 ISSN 1549-3636 2012 Science Publications Detection of Occluded Face Image using Mean Based Weight Matrix and Suort Vector Machine 1 G. Nirmala Priya and

More information

Wavelet Based Statistical Adapted Local Binary Patterns for Recognizing Avatar Faces

Wavelet Based Statistical Adapted Local Binary Patterns for Recognizing Avatar Faces Wavelet Based Statistical Adated Local Binary atterns for Recognizing Avatar Faces Abdallah A. Mohamed 1, 2 and Roman V. Yamolskiy 1 1 Comuter Engineering and Comuter Science, University of Louisville,

More information

The Anubis Service. Paul Murray Internet Systems and Storage Laboratory HP Laboratories Bristol HPL June 8, 2005*

The Anubis Service. Paul Murray Internet Systems and Storage Laboratory HP Laboratories Bristol HPL June 8, 2005* The Anubis Service Paul Murray Internet Systems and Storage Laboratory HP Laboratories Bristol HPL-2005-72 June 8, 2005* timed model, state monitoring, failure detection, network artition Anubis is a fully

More information

Continuous Visible k Nearest Neighbor Query on Moving Objects

Continuous Visible k Nearest Neighbor Query on Moving Objects Continuous Visible k Nearest Neighbor Query on Moving Objects Yaniu Wang a, Rui Zhang b, Chuanfei Xu a, Jianzhong Qi b, Yu Gu a, Ge Yu a, a Deartment of Comuter Software and Theory, Northeastern University,

More information

A Study of Protocols for Low-Latency Video Transport over the Internet

A Study of Protocols for Low-Latency Video Transport over the Internet A Study of Protocols for Low-Latency Video Transort over the Internet Ciro A. Noronha, Ph.D. Cobalt Digital Santa Clara, CA ciro.noronha@cobaltdigital.com Juliana W. Noronha University of California, Davis

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

Building Polygonal Maps from Laser Range Data

Building Polygonal Maps from Laser Range Data ECAI Int. Cognitive Robotics Worksho, Valencia, Sain, August 2004 Building Polygonal Mas from Laser Range Data Longin Jan Latecki and Rolf Lakaemer and Xinyu Sun and Diedrich Wolter Abstract. This aer

More information

SPITFIRE: Scalable Parallel Algorithms for Test Set Partitioned Fault Simulation

SPITFIRE: Scalable Parallel Algorithms for Test Set Partitioned Fault Simulation To aear in IEEE VLSI Test Symosium, 1997 SITFIRE: Scalable arallel Algorithms for Test Set artitioned Fault Simulation Dili Krishnaswamy y Elizabeth M. Rudnick y Janak H. atel y rithviraj Banerjee z y

More information

Sensitivity of multi-product two-stage economic lotsizing models and their dependency on change-over and product cost ratio s

Sensitivity of multi-product two-stage economic lotsizing models and their dependency on change-over and product cost ratio s Sensitivity two stage EOQ model 1 Sensitivity of multi-roduct two-stage economic lotsizing models and their deendency on change-over and roduct cost ratio s Frank Van den broecke, El-Houssaine Aghezzaf,

More information

AN INTEGER LINEAR MODEL FOR GENERAL ARC ROUTING PROBLEMS

AN INTEGER LINEAR MODEL FOR GENERAL ARC ROUTING PROBLEMS AN INTEGER LINEAR MODEL FOR GENERAL ARC ROUTING PROBLEMS Philie LACOMME, Christian PRINS, Wahiba RAMDANE-CHERIF Université de Technologie de Troyes, Laboratoire d Otimisation des Systèmes Industriels (LOSI)

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

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

The VEGA Moderately Parallel MIMD, Moderately Parallel SIMD, Architecture for High Performance Array Signal Processing

The VEGA Moderately Parallel MIMD, Moderately Parallel SIMD, Architecture for High Performance Array Signal Processing The VEGA Moderately Parallel MIMD, Moderately Parallel SIMD, Architecture for High Performance Array Signal Processing Mikael Taveniku 2,3, Anders Åhlander 1,3, Magnus Jonsson 1 and Bertil Svensson 1,2

More information

Real Time Compression of Triangle Mesh Connectivity

Real Time Compression of Triangle Mesh Connectivity Real Time Comression of Triangle Mesh Connectivity Stefan Gumhold, Wolfgang Straßer WSI/GRIS University of Tübingen Abstract In this aer we introduce a new comressed reresentation for the connectivity

More information

A Metaheuristic Scheduler for Time Division Multiplexed Network-on-Chip

A Metaheuristic Scheduler for Time Division Multiplexed Network-on-Chip Downloaded from orbit.dtu.dk on: Jan 25, 2019 A Metaheuristic Scheduler for Time Division Multilexed Network-on-Chi Sørensen, Rasmus Bo; Sarsø, Jens; Pedersen, Mark Ruvald; Højgaard, Jasur Publication

More information

EE678 Application Presentation Content Based Image Retrieval Using Wavelets

EE678 Application Presentation Content Based Image Retrieval Using Wavelets EE678 Alication Presentation Content Based Image Retrieval Using Wavelets Grou Members: Megha Pandey megha@ee. iitb.ac.in 02d07006 Gaurav Boob gb@ee.iitb.ac.in 02d07008 Abstract: We focus here on an effective

More information

Near-Optimal Routing Lookups with Bounded Worst Case Performance

Near-Optimal Routing Lookups with Bounded Worst Case Performance Near-Otimal Routing Lookus with Bounded Worst Case Performance Pankaj Guta Balaji Prabhakar Stehen Boyd Deartments of Electrical Engineering and Comuter Science Stanford University CA 9430 ankaj@stanfordedu

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

Compiling for Heterogeneous Systems: A Survey and an. Approach

Compiling for Heterogeneous Systems: A Survey and an. Approach Comiling for Heterogeneous Systems: A Survey and an Aroach Kathryn S. McKinley, J. Eliot B. Moss, Sharad K. Singhai, Glen E. Weaver, Charles C. Weems CMPSCI Techincal Reort 95-59 Setember 1995 Deartment

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

Communication-Avoiding Parallel Algorithms for Solving Triangular Matrix Equations

Communication-Avoiding Parallel Algorithms for Solving Triangular Matrix Equations Research Collection Bachelor Thesis Communication-Avoiding Parallel Algorithms for Solving Triangular Matrix Equations Author(s): Wicky, Tobias Publication Date: 2015 Permanent Link: htts://doi.org/10.3929/ethz-a-010686133

More information

A NOVEL GEOMETRIC ALGORITHM FOR FAST WIRE-OPTIMIZED FLOORPLANNING

A NOVEL GEOMETRIC ALGORITHM FOR FAST WIRE-OPTIMIZED FLOORPLANNING A OVEL GEOMETRIC ALGORITHM FOR FAST WIRE-OPTIMIZED FLOORPLAIG Peter G. Sassone, Sung K. Lim School of Electrical and Comuter Engineering Georgia Institute of Technology Atlanta, Georgia 30332, U ABSTRACT

More information

A Symmetric FHE Scheme Based on Linear Algebra

A Symmetric FHE Scheme Based on Linear Algebra A Symmetric FHE Scheme Based on Linear Algebra Iti Sharma University College of Engineering, Comuter Science Deartment. itisharma.uce@gmail.com Abstract FHE is considered to be Holy Grail of cloud comuting.

More information

Multi-robot SLAM with Unknown Initial Correspondence: The Robot Rendezvous Case

Multi-robot SLAM with Unknown Initial Correspondence: The Robot Rendezvous Case Multi-robot SLAM with Unknown Initial Corresondence: The Robot Rendezvous Case Xun S. Zhou and Stergios I. Roumeliotis Deartment of Comuter Science & Engineering, University of Minnesota, Minneaolis, MN

More information

Efficient Sequence Generator Mining and its Application in Classification

Efficient Sequence Generator Mining and its Application in Classification Efficient Sequence Generator Mining and its Alication in Classification Chuancong Gao, Jianyong Wang 2, Yukai He 3 and Lizhu Zhou 4 Tsinghua University, Beijing 0084, China {gaocc07, heyk05 3 }@mails.tsinghua.edu.cn,

More information

Multidimensional Service Weight Sequence Mining based on Cloud Service Utilization in Jyaguchi

Multidimensional Service Weight Sequence Mining based on Cloud Service Utilization in Jyaguchi Proceedings of the International MultiConference of Engineers and Comuter Scientists 2013 Vol I, Multidimensional Service Weight Sequence Mining based on Cloud Service Utilization in Jyaguchi Shree Krishna

More information

A Novel Iris Segmentation Method for Hand-Held Capture Device

A Novel Iris Segmentation Method for Hand-Held Capture Device A Novel Iris Segmentation Method for Hand-Held Cature Device XiaoFu He and PengFei Shi Institute of Image Processing and Pattern Recognition, Shanghai Jiao Tong University, Shanghai 200030, China {xfhe,

More information

A CLASS OF STRUCTURED LDPC CODES WITH LARGE GIRTH

A CLASS OF STRUCTURED LDPC CODES WITH LARGE GIRTH A CLASS OF STRUCTURED LDPC CODES WITH LARGE GIRTH Jin Lu, José M. F. Moura, and Urs Niesen Deartment of Electrical and Comuter Engineering Carnegie Mellon University, Pittsburgh, PA 15213 jinlu, moura@ece.cmu.edu

More information

Fast Distributed Process Creation with the XMOS XS1 Architecture

Fast Distributed Process Creation with the XMOS XS1 Architecture Communicating Process Architectures 20 P.H. Welch et al. (Eds.) IOS Press, 20 c 20 The authors and IOS Press. All rights reserved. Fast Distributed Process Creation with the XMOS XS Architecture James

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

A Parallel Algorithm for Constructing Obstacle-Avoiding Rectilinear Steiner Minimal Trees on Multi-Core Systems

A Parallel Algorithm for Constructing Obstacle-Avoiding Rectilinear Steiner Minimal Trees on Multi-Core Systems A Parallel Algorithm for Constructing Obstacle-Avoiding Rectilinear Steiner Minimal Trees on Multi-Core Systems Cheng-Yuan Chang and I-Lun Tseng Deartment of Comuter Science and Engineering Yuan Ze University,

More information

[9] J. J. Dongarra, R. Hempel, A. J. G. Hey, and D. W. Walker, \A Proposal for a User-Level,

[9] J. J. Dongarra, R. Hempel, A. J. G. Hey, and D. W. Walker, \A Proposal for a User-Level, [9] J. J. Dongarra, R. Hemel, A. J. G. Hey, and D. W. Walker, \A Proosal for a User-Level, Message Passing Interface in a Distributed-Memory Environment," Tech. Re. TM-3, Oak Ridge National Laboratory,

More information

Face Recognition Using Legendre Moments

Face Recognition Using Legendre Moments Face Recognition Using Legendre Moments Dr.S.Annadurai 1 A.Saradha Professor & Head of CSE & IT Research scholar in CSE Government College of Technology, Government College of Technology, Coimbatore, Tamilnadu,

More information

Sage Estimating. (formerly Sage Timberline Estimating) Getting Started Guide

Sage Estimating. (formerly Sage Timberline Estimating) Getting Started Guide Sage Estimating (formerly Sage Timberline Estimating) Getting Started Guide This is a ublication of Sage Software, Inc. Document Number 20001S14030111ER 09/2012 2012 Sage Software, Inc. All rights reserved.

More information

Signature File Hierarchies and Signature Graphs: a New Index Method for Object-Oriented Databases

Signature File Hierarchies and Signature Graphs: a New Index Method for Object-Oriented Databases Signature File Hierarchies and Signature Grahs: a New Index Method for Object-Oriented Databases Yangjun Chen* and Yibin Chen Det. of Business Comuting University of Winnieg, Manitoba, Canada R3B 2E9 ABSTRACT

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

Block Recycling Schemes and Their Cost-based Optimization in NAND Flash Memory Based Storage System

Block Recycling Schemes and Their Cost-based Optimization in NAND Flash Memory Based Storage System Block Recycling Schemes and Their Cost-based Otimization in NAND Flash Memory Based Storage System Jongmin Lee School of Comuter Science University of Seoul jmlee@uos.ac.kr Sunghoon Kim Center for the

More information

Decoding-Workload-Aware Video Encoding

Decoding-Workload-Aware Video Encoding Decoding-Workload-Aware Video Encoding Yicheng Huang, Guangming Hong, Vu An Tran and Ye Wang Deartment of Comuter Science ational University of Singaore Law Link, Singaore 117590 Reulic of Singaore {huangyic,

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

Auto-Tuning Distributed-Memory 3-Dimensional Fast Fourier Transforms on the Cray XT4

Auto-Tuning Distributed-Memory 3-Dimensional Fast Fourier Transforms on the Cray XT4 Auto-Tuning Distributed-Memory 3-Dimensional Fast Fourier Transforms on the Cray XT4 M. Gajbe a A. Canning, b L-W. Wang, b J. Shalf, b H. Wasserman, b and R. Vuduc, a a Georgia Institute of Technology,

More information

J. Parallel Distrib. Comput.

J. Parallel Distrib. Comput. J. Parallel Distrib. Comut. 71 (2011) 288 301 Contents lists available at ScienceDirect J. Parallel Distrib. Comut. journal homeage: www.elsevier.com/locate/jdc Quality of security adatation in arallel

More information

Layered Switching for Networks on Chip

Layered Switching for Networks on Chip Layered Switching for Networks on Chi Zhonghai Lu zhonghai@kth.se Ming Liu mingliu@kth.se Royal Institute of Technology, Sweden Axel Jantsch axel@kth.se ABSTRACT We resent and evaluate a novel switching

More information

Visualization, Estimation and User-Modeling for Interactive Browsing of Image Libraries

Visualization, Estimation and User-Modeling for Interactive Browsing of Image Libraries Visualization, Estimation and User-Modeling for Interactive Browsing of Image Libraries Qi Tian, Baback Moghaddam 2 and Thomas S. Huang Beckman Institute, University of Illinois, Urbana-Chamaign, IL 680,

More information