| J. Zhao, J. Cheng, and K. Ushijima. Static slicing of concurrent object-oriented programs. In Proc. 20th IEEE Annual Intl. Computer Software and Applications Conf., 1996. |
....programming languages [17, 41] in this dissertation these types of programs are referred to as uni procedure programs. More recently, research has been directed at more complex types of languages used to describe programs with procedure calls [22, 27, 33, 37, 47] object oriented programs [31, 57], concurrent programs [14, 23, 56] concurrent object oriented programs [57] software architectures [48, 55] and hardware architectures [15] Work in the area of identifying control dependencies in uni procedure programs produced two, very similar formal models, one by Ottenstein and Ottenstein ....
....are referred to as uni procedure programs. More recently, research has been directed at more complex types of languages used to describe programs with procedure calls [22, 27, 33, 37, 47] object oriented programs [31, 57] concurrent programs [14, 23, 56] concurrent object oriented programs [57], software architectures [48, 55] and hardware architectures [15] Work in the area of identifying control dependencies in uni procedure programs produced two, very similar formal models, one by Ottenstein and Ottenstein [39] and the other by Podgurski and Clarke [41] These formal models are ....
J. Zhao, J. Cheng, and K. Ushijima. Static Slicing of Concurrent Object-Oriented Programs. In Twentieth Annual International Computer Software and Applications Conference, pages 312-320, Seoul, Korea, August 1996. IEEE Computer Society. 98 Appendix A Notation The following is a list of abbreviations and notations used in this thesis.
....slicing of threaded programs are based on such dependence graphs. Dynamic slicing of threaded or concurrent programs has been approached by different authors [18, 5, 6, 14, 12, 9] and is surveyed in [29] Probably the first approach for static slicing of threaded programs was the work of Cheng [3, 35, 4]. He introduced some dependences which are more specialized than the previously presented dependences. These are needed for a variant of the PDG, the program dependence net (PDN) His selection dependence is a special kind of control dependence; his synchronization dependence is basically control ....
....based on graph reachability. The resulting slices are not precise, as they do not take into account that dependences between parallel executed statements are not transitive. Therefore, the integration of his technique of slicing threaded programs into slicing threaded object oriented programs [35, 36, 33, 34] has the same problem. After the first publication of our previous work on slicing of concurrent programs [15] more work on precise static slicing has been done: 21] improves the earlier version of the presented work and [1] is a different approach but also based on dependence graphs. There is ....
J. Zhao, J. Cheng, and K. Ushijima. Static slicing of concurrent object-oriented programs. In Proceedings of the 20th IEEE Annual International Computer Software and Applications Conference, pages 312--320, 1996.
....technologies also calls for new slicing algorithms to be applied to the new programming languages. From this point of view, a research effort has already been produced and several contributions to the definition of slicing methods for object oriented [66, 82, 18, 79] concurrent, and distributed [30, 19, 56, 62, 89] software applications have already been published, but research should also concentrate on slicing web based applications developed with heterogeneous programming languages and technologies. First attempts in this direction are recently being made [78] A final point of concern is what should ....
J. Zhao, J. Cheng, and K. Ushijima, "Static slicing of concurrent object-oriented programs", Proceedings International Conference on Computer Software and Applications, Seoul, Korea, IEEE CS Press, 1996, pp. 312-320.
....of slices. Program slicing is not only used in software debugging [2,11,17,22,35] but also in software maintenance and testing [3, 12, 15, 25,28,30,31] Program slicing is an already established method for analyzing sequential programs, however there are only a few existing slicing algorithms [6,7,10,32,42] that support slicing of concurrent program. A current paradigm that is gaining popularity in expressing concurrency is via the message passing programming paradigm, which results in distributed processes that communicate via messages. So far there is only a limited amount of research that focuses ....
....communication dependence and selection dependence. His selection dependence is a generalization of control dependence for nondeterministic choice operators appearing in his language. As Tip notes [39] Cheng does not state or prove any property of the slice computed by his algorithm. Zhao [42] addresses static slicing of Java programs using thread dependence graphs (TDGs) They can handle method calls and synchronized methods, but not synchronized statements. Krinke [32] considers in his work static slicing of multi threaded programs with shared variables and focuses on issues ....
Zhao, J., Cheng J., and Ushijima v, "Static Slicing of Concurrent Object-Oriented Programs", Proceedings of the 20 IEEE Annual International Computer Software and Applications conference , pp.312-320, August, 1996, IEEE Computer Society Press.
....might affect the values of these variables [20] The value of a variable affected by a statement, defined by Weiser, means that the variable is control or data dependent on the statement directly or indirectly. Many slicing algorithms are based on some kinds of program dependency graphs, such as [11, 13, 14, 18, 22], to compute a program slice. With the graphs, program slicing can be reduced to the graph reachability problem in which a program. slice is a set of verticeg that can he reached from some indicated vertex. However, most slicing techniques up to date were developed for traditional ....
....of messages. It might perform an inappropriate behavior declared in ]its definition class. That is, the unexpected state could be caused either by the received messages or class definition, or both. Current approaches to slicing OO programs; are only focused on the received messages (e.g. [5, 11, 22]) The slices generated by these approaches may be insufficient for programmers to reach an unexpected state incurred by received messages or inappropriate behaviors. In this paper, we define new types of program slices, state and behavior slices, by taking the dependencies of OO features into ....
[Article contains additional citation context not shown here]
J. Zhao, J, Cheng, and K. Ushijima, "Static Slicing of Concurrent Object-Oriented Programs," Proceedings of
....to search these dependences not by traversing all paths because there are too many paths. To improve the precision of slices, those statements on which a statement really does not depend should be deleted. Techniques for slicing sequential Object Oriented programs have already been developed [3,4,15] . In this paper, we focus on computing precise slices of concurrent Java programs. Only the concurrency issues in Java are of concern, many sequential Object Oriented features are not discussed. The rest of the sections are organized as follows. Section 2 introduces our representation for ....
J. Zhao et al. Static Slicing of Concurrent Object-Oriented Programs . Proceedings of the 20th IEEE Annual International Computer Software and Applications Conference, pp.312-320, August 1996.
....we make a criterion in VRML hybrid slicing be additionally composed of the information of focused execution. The affection described up to now can be considered as a dependency in VRML. Because of language feature similarity, we referred to a program slicing for concurrent object oriented programs[7], then applied some dependency in it into VRML. We thought some additional dependency for VRML after studying the VRML feature, then constructed new system of dependency[5] in VRML. 2.2. VRML dependence graph and slice extraction Without executing a VRML program, dependency edges extracted by ....
J. Zhao, J. Cheng, and K. Ushijima, "Static Slicing of Concurrent Object-Oriented Programs", Proceedings of the 20th IEEE Annual International Computer Software and Applications Conference, 1996, pp. 312-320.
....language constructs. This requirement has forced slicing research to address problems associated with dicult programming language features, such as procedural abstraction [26, 45] pointers [2, 35, 37, 16] goto statements [21, 29, 10, 1, 4] object orientation [33, 49] and concurrent execution [31, 9, 53]. Classical approaches [52, 36, 19] rely upon a collection of data ow equations relating a Control Flow Graph (CFG) node to the variable names which are relevant (with respect to the slicing criterion) at that node. The slice is the least solution to this set of equations. In 1984, Ottenstein ....
Jianjun Zhao, Jingde Cheng, and Kazuo Ushijima. Static slicing of concurrent object-oriented programs. In 20 th IEEE Annual International Computer Software and Applications Conference (COMPSAC'96), Seoul, Korea, August 1996. To appear. 7
....based on graph reachability. The resulting slices are not precise, as they do not take into account that dependences between parallel executed statements are not transitive. Therefore, the integration of his technique of slicing threaded programs into slicing threaded object oriented programs [20] has the same problem. 6 Conclusions and further work We have presented extended versions of the control flow and program dependence graphs for threaded programs, called the threaded control flow graph and threaded program dependence graph. The tCFG is similar to other extensions of the CFG for ....
....extend our technique for different kind of threads like fork join. object orientation. The problem of slicing object oriented programs is orthogonal to slicing threaded programs, the integration of slicing object oriented programs like [11] should be possible, following similar techniques as [20]. Our next goal is the integration of this technique in our slicing tool [6, 16] for sequential standard C programs. As this tool is able to generate and simplify path conditions based on program slices, we will develop new constraints stemming from threaded program for these path conditions ....
J. Zhao, J. Cheng, and K. Ushijima. Static slicing of concurrent object-oriented programs. In Proc. 20th IEEE Annual Intl. Computer Software and Applications Conf., 1996.
....extend this work with the introduction of techniques for creating dynamic slices. Both these approaches use traditional slicing criteria, whereas this work involves exploring relationships at the architectural level, where the concept of a variable is abstracted away. Zhao, Cheng, and Ushijima [26] propose the system dependence net (SDN) as a representation of concurrent object oriented programs. The SDN is used to find slices of CC (Concurrent C ) programs. Zhao [25] has recently begun work in the area of dependence analysis of formally described software architectures. The work ....
J. Zhao, J. Cheng, and K. Ushijima. Static Slicing of Concurrent Object-Oriented Programs. In IEEECS 20th Annual International Computer Software and Applications Conference, pages 312--320, 1996. 6
....of techniques for creating dynamic slices. In both of these efforts, the value of a variable in a particular predicate is used as the slicing criteria, whereas we are exploring relationships at the architectural level, where the concept of a variable does not exist. Zhao, Cheng, and Ushijima [23] propose the system dependence net (SDN) as a representation of concurrent object oriented programs. The SDN is used to find slices of CC (Concurrent C ) programs, using the value of a variable or return value of a method call at a particular statement as the slicing criteria. They point out ....
J. Zhao, J. Cheng, and K. Ushijima. Static Slicing of Concurrent Object-Oriented Programs. In IEEECS 20th Annual International Computer Software and Applications Conference, pages 312--320, 1996.
....control dependence are the two basic notions of dependence that appear in slicing of sequential programs [21] We also use the notion of divergence dependence (which is also relevant in the sequential setting) to insure that termination properties are preserved by slicing. Interference dependence [4, 24] captures dependencies that arise between different threads due to shared variables. We introduce the notions of synchronization dependence and ready dependence to capture dependencies due to JVM synchronization constructs. Data dependence is related to the notion of reaching definition: a node n ....
Jianjun Zhao, Jingde Cheng, and Kazuo Ushijima. Static slicing of concurrent object-oriented programs. In Proceedings of the 20th IEEE Annual International Computer Software and Applications Conference (COMPSAC '96), pages 312--320, 1996.
.... optimizations, has been applied to various software engineering activities including program slicing, debugging, testing, maintenance, and complexity measurements for procedural programs [1, 7, 12, 17, 18] Recently, researchers have applied program dependence analysis to object oriented software [15, 16, 5, 6, 23] (for detailed discussions, see related work section) as well as software architectures [24] However, although a number of dependence based representations have been proposed for modeling various object oriented features such as classes and objects, class inheritance, polymorphism and dynamic ....
....of the JSDG which include program slicing and software maintenance. 4. 1 Program Slicing The most direct application of JSDG is to slice Java software since the explicit representation of various program dependences in Java software makes the JSDG ideal for computing slices of a Java program [23]. Program slicing, originally introduced by Weiser [22] is a decomposition technique which extracts from program statements related to a particular computation. A program slice consists of those parts of a program that may directly or indirectly affect the values computed at some program point ....
[Article contains additional citation context not shown here]
J. Zhao, J. Cheng, and K. Ushijima, "Static Slicing of Concurrent Object-Oriented Programs," Proceedings of the 20th IEEE Annual International Computer Software and Applications Conference, pp.312-320, August 1996, IEEE Computer Society Press.
....kind of slicing as traditional slicing to distinguish it from a new form of slicing introduced later. Traditional slicing has been studied primarily in the context of conventional programming languages [17] In such languages, slicing is typically performed using dependence graph representations [4, 9, 6, 14, 19, 20]. Traditional slicing has many applications in software engineering activities including program understanding [5] debugging [1] testing [2] maintenance [7] reuse [13] reverse engineering [3] and complexity measurement [14] 3 Technical Report 97 SE 117, pp.85 92, Information Processing ....
J. Zhao, J. Cheng and K. Ushijima, "Static Slicing of Concurrent Object-Oriented Programs," Proc. of the COMPSAC'96, pp.312-320, IEEE Computer Society Press, August 1996.
....programs. Recently, as object oriented software become popular, researchers have applied dependence analysis to object oriented programs to represent various object oriented features such as classes and objects, class inheritance, polymorphism and dynamic binding [4, 11, 13, 15] and concurrency [19, 20]. for detailed discussions, see related work section) However, previous work on dependence analysis has mainly focused on programs written in high level programming languages, rather than programs in low level programming languages such as JVM. Although there are several dependence analysis ....
....it is the first time, to our knowledge, to apply dependence analysis to Java bytecode. Dependence analysis of object oriented programs has been studied by Larsen and Harrold [13] Malloy et al. 15] and Chen et al. 4] who considered sequential object oriented programs, and by Zhao et al. [19, 20] who considered concurrent object oriented programs. However, although these techniques can analyze various types of dependencies of object oriented programs, they still lack the ability to analyze Java bytecode. Dependence analysis of binary executables has been studied by Cifuentes and ....
J. Zhao, J. Cheng, and K. Ushijima, "Static Slicing of Concurrent Object-Oriented Programs," Proceedings of the 20th IEEE Annual International Computer Software and Applications Conference, pp.312-320, August 1996, IEEE Computer Society Press.
.... in functional programs, logical programs, or programs in other programming paradigms which is intrinsically different from the five types of primary program dependences presented in this paper Can we develop an axiomatic theory for program dependence analysis We are investigating these problems [25, 26, 27]. Until now, almost all, if not all, work on program dependence analysis technique focused their attentions on a single program rather than a large scale distributed system with various programs written in various programming languages. However, it is obvious that as a representation for a single ....
J. Zhao, J. Cheng, and K. Ushijima, "Static Slicing of Concurrent Object-Oriented Programs," Proc. IEEE-CS 20th Annual International Computer Software and Applications Conference, pp. 312-320, 1996.
....for procedural programs. Recently, as object oriented software become popular, researchers have applied DBRs to objectoriented programs to represent various object oriented features such as classes and objects, class inheritance, polymorphism and dynamic binding [4, 5, 12, 14, 15] and concurrency [24, 26]. for detailed discussions, see related work section) However, the existing DBRs for object oriented software can not be applied to concurrent Java programs straightforwardly due to the specific features of Java concurrency model. In order to represent the full range of concurrent Java program, ....
....graph for modeling sequential object oriented programs. Although these DBRs can be used to represent many features of sequential object oriented programs, they lack the ability to represent concurrency issues, and therefore can not be used to represent concurrent Java programs. Zhao et al. [24] presented a DBR called system dependence net to represent concurrent object riented programs, especially Compositional C (CC ) programs [3] In CC , synchronization between different threads is realized by using a single assignment variable. Threads that share access to a single assignment ....
J. Zhao, J. Cheng, and K. Ushijima, "Static Slicing of Concurrent Object-Oriented Programs," Proc. 20th IEEE Annual International Computer Software and Applications Conference, pp.312-320, August 1996.
....as traditional slicing to distinguish it from a new form of slicing introduced later. Traditional slicing has been studied primarily in the context of conventional programming languages [21] In such languages, slicing is typically performed by using a control flow graph or a dependence graph [5, 12, 7, 16, 24, 25]. Traditional slicing has many applications in software engineering activities including program understanding [6] debugging [1] testing [3] maintenance [8] reuse [15] reverse engineering [4] and complexity measurement [16] Applying slicing technique to software architectures promises ....
J. Zhao, J. Cheng and K. Ushijima, "Static Slicing of Concurrent Object-Oriented Programs," Proc. of the COMPSAC'96, pp.312-320, IEEE Computer Society Press, August 1996.
....as traditional dependence analysis to distinguish it from a new form dependence analysis introduced later. Traditional dependence analysis has been primarily studied in the context of conventional programming languages. In such languages, it is typically performed using program dependence graphs [4, 10, 15, 21, 22]. Traditional dependence analysis, though originally proposed for complier optimization, has also many applications in software engineering activities such as program slicing, understanding, debugging, testing, maintenance and complexity measurement [1, 3, 4, 15, 17, 21, 22] Applying dependence ....
.... program dependence graphs [4, 10, 15, 21, 22] Traditional dependence analysis, though originally proposed for complier optimization, has also many applications in software engineering activities such as program slicing, understanding, debugging, testing, maintenance and complexity measurement [1, 3, 4, 15, 17, 21, 22]. Applying dependence analysis to software architectures promises benefit for software architecture development at least in two aspects. First, architectural understanding and maintenance should benefit from dependence analysis. To understand a software architecture to make changes during ....
J. Zhao, J. Cheng and K. Ushijima, "Static Slicing of Concurrent Object-Oriented Programs," Proc. of the COMPSAC'96, pp.312-320, IEEE Computer Society Press, August 1996.
....useful for program debugging and testing. However, although a number of approaches have been proposed for slicing procedural programs, slicing object oriented programs is just starting. Although researchers have extended the concept of program slicing to static slicing of object oriented programs [6, 14, 16, 19, 21, 23], the dynamic slicing of object oriented programs is still being missing until now. Object oriented programming languages present unique opportunities and problems for program analysis schemes such as slicing and testing. For example, to slice an object oriented program, features such as dynamic ....
J. Zhao, J. Cheng, and K. Ushijima, "Static Slicing of Concurrent Object-Oriented Programs," Proceedings of the 20th IEEE Annual International Computer Software and Applications Conference, pp.312-320, August 1996, IEEE Computer Society Press.
.... [2] As object oriented software becomes popular, recently, researchers have applied program slicing to object oriented programs to handle various objectoriented features such as classes and objects, class inheritance, polymorphism, dynamic binding [4, 5, 12, 13, 14, 18] and concurrency [20]. However, existing slicing algorithms for object oriented programs can not be applied to concurrent Java programs straightforwardly to obtain correct slices due to specific features of Java concurrency model. In order to slice concurrent Java programs correctly, we must extend these slicing ....
....programs, they lack the ability to represent concurrency. Therefore, the slicing algorithms based on these representations can not compute static slices of a concurrent Java program correctly. Slicing object oriented programs with concurrency issues has also been considered. Zhao et al. [20] presented a dependence based representation called the system dependence net to represent concurrent object oriented programs (especially Compositional C (CC ) programs [3] In CC , synchronization between different threads is realized by using a single assignment variable. Threads that ....
J. Zhao, J. Cheng, and K. Ushijima, "Static Slicing of Concurrent Object-Oriented Programs," Proceedings of the 20th IEEE Annual International Computer Software and Applications Conference, pp.312-320, August 1996.
....object oriented software. 4. 1 Program Slicing The most direct application of SDN is to slice concurrent object oriented programs since the explicit representation of various program dependences in a concurrent object oriented program makes the SDN ideal for computing slices of the program [19]. Program slicing, originally introduced by Weiser [18] is a decomposition technique which extracts from program statements related to a particular computation. A program slice consists of those parts of a program that may directly or indirectly affect the values computed at some program point of ....
J. Zhao, J. Cheng, and K. Ushijima, "Static Slicing of Concurrent Object-Oriented Programs," Proceedings of the 20th IEEE Annual International Computer Software and Applications Conference, pp.312-320, August 1996, IEEE Computer Society Press.
No context found.
J. Zhao, J. Cheng, and K. Ushijima. Static slicing of concurrent object-oriented programs. In Proc. 20th IEEE Annual Intl. Computer Software and Applications Conf., 1996.
No context found.
J. Zhao, J. Cheng, and K. Ushijima. Static slicing of concurrent object-oriented programs. In Proceedings of the 20th IEEE Annual International Computer Software and Applications Conference, pages 312--320, 1996.
No context found.
J. Zhao, J. Cheng, and K. Ushijima. Static Slicing of Concurrent Object-Oriented Programs. In Twentieth Annual International Computer Software and Applications Conference, pages 312-320, Seoul, Korea, August 1996. IEEE Computer Society. 98 Appendix A Notation The following is a list of abbreviations and notations used in this thesis.
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC