Sep 28, 2006 - criteria C consisting of a set of program statements, a program slicer ... the statements in C. Upon conclusion of the slice calculation, the slicer.
E-mail: fzhao,cheng,[email protected]. ABSTRACT. Program ..... we adopt the mode analysis algorithm proposed by Krishna Rao et al. [13] for our.
phase slicer. In the first phase, nodes 10, 9 and 8 are visited. The second phase starts at the omitted parameter-out edge to node 12 and visits the nodes 12, 13, ...
backward slice, since it associates a slicing criterion with a set of program locations ...... http://www.epcc.ed.ac.uk/javagrande/seq/contents.html. [7] Kawa, a Java ...
Program slicing can be effectively used to debug, test, analyze, understand and maintain ... In this paper, a new slicing model is proposed to slice Java programs based on their inherent ...... ing focus, the overall performance of slicing will be.
are presented, the architecture of the Java program analyzing Tool (JATO) based on ..... performance of slicing will be improved considerably. The procedure .... CLDG. MLDG. JATO software measurement tools software testing tools. GUI.
ments (which may have different thread scheduling policies), it must work .... are, by definition, the events whose order determines the result of the program.
about the thread scheduler. Therefore, for a concurrent Java program to be robust in the face of varying load conditions (which can perturb the schedul- ing) and ...
As concurrent Java applications are going to be accumulated, the develop- ... ment of concurrent Java software will become an im- portant issue. Program ...
JPF handles almost all pure Java code; exceptions include file input/output or network ... various modules communicate through Java RMI [11]. The version of ...
Indian Institute of Technology Kharagpur. Kharagpur ... grams. In orderto copewiththis scenario, programmers need effective computer-supported techniquesfor ...
Jul 16, 2008 - ing concurrent software properties in which the states of a concurrent system ... ideas in the Java Pathfinder (JPF) model checker to validate them and ... Keywords ..... rank test because we compare one sample (the results of.
paper a set o mutant operator is proposed for the Java programming language, and more specifically ..... the call and insert the current thread in the object wait set, temporarily blocking ..... Research Center, Purdue University, March 1989.
Jul 16, 2008 - Francisco Chicano. Dpto. Lenguajes y Ciencias de la Computación. University of Málaga, Spain [email protected]. Marco Ferreira.
Verifying Safety Properties of Concurrent Java Programs. Using 3-Valued Logic.
Eran Yahav. School of Computer Science. Tel-Aviv University, Tel-Aviv 69978.
such as Java, C# and VB. ... This is an issue because in concurrent programs threads compete against each other for ..... this issue by associating a colour to each object. ... The Thread State Diagram consists of six interconnected states ..... Lear
rent system as a flow graph and, using a data flow analysis algorithm over this graph, ... possible communications among threads in Java programs, instead of ...
the data flow analysis technique can be extended to detect such anomalies. q ... Dynamic data flow analysis; Instrumentation; Concurrency; Software testing; ...
ing replay can dramatically slow down a ... The IDD system [Harter et al. ..... 2 eventwait on 3. Figure 5. The mtdbx time-process diagram. Display. Filter w. Time.
This paper extends the well-known technique of slicing to synchronous reactive ... An important phase in the design of reactive systems is their verification.
parameters passed in the procedure are known at the time of procedure call only. 2009 International Conference on Signal Processing Systems.
1 Department of Computer Science and Engineering ... current programming (the first two questions above). .... the interview out of 16 selected students. Making ...
May 18, 2009 - Bhubaneswar-752054, India ... Due to the quick development of Internet, there is a ... web applications using Java Server Pages (JSP) [2].
To solve this problem, we present the dy- namic object-oriented dependence graph (DODG) which is an arc-classi ed digraph to explicitly rep- ... 1 Introduction ... the great strengths of object-oriented programming ..... as Java and Ada95 are easily
ging a concurrent Java program is more di cult than a sequential ... 11 end;. 12 end if. 13 write(Total, sum);. 14 end. 1 begin. 2 read(X,Y);. 3 Total := 0.0;. 4. 5 if X
Slicing Concurrent Java Programs Jianjun Zhao Department of Computer Science and Engineering Fukuoka Institute of Technology 3-10-1 Wajiro-Higashi, Higashi-ku, Fukuoka 811-02, Japan zhao@cs. t.ac.jp
Abstract
Although many slicing algorithms have been proposed for object-oriented programs, no slicing algorithm has been proposed which can be used to handle the problem of slicing concurrent Java programs correctly. In this paper, we propose a slicing algorithm for concurrent Java programs. To slice concurrent Java programs, we present a dependence-based representation called multithreaded dependence graph, which extends previous dependence graphs, to represent concurrent Java programs. We also show how static slices of a concurrent Java program can be computed eciently based on its multithreaded dependence graph. 1
Introduction
Java is a new object-oriented programming language and has achieved widespread acceptance because it emphasizes portability. Java has multithreading capabilities for concurrent programming. To provide synchronization between asynchronously running threads, the Java language and runtime system uses monitors. Because of the nondeterministic behaviors of concurrent Java programs, predicting, understanding, and debugging a concurrent Java program is more dicult than a sequential object-oriented program. As concurrent Java applications are going to be accumulated, the development of techniques and tools to support understanding, debugging, testing, and maintenance of concurrent Java software will become an important issue. Program slicing, originally introduced by Weiser [19], is a decomposition technique which extracts the elements of a program related to a particular computation. A program slice consists of those parts of a program that may directly or indirectly aect the values computed at some program point of interest, referred to as a slicing criterion. The task to compute program slices is called program slicing. To understand the basic idea of program slicing, consider a simple example in Figure 1 which shows: (a) a program fragment and (b) its slice with respect to the slice criterion (Total,14). The slice has only those statements in the program that might aect the value of variable Total at line 14. The lines represented by small rectangles are statements that have been sliced away. Program slicing has been studied primarily in the context of procedural programming languages (for a detailed survey, see [17]). In such languages, slicing is typically performed by using a control ow graph or a dependence graph [6, 11, 8, 15]. Program slicing has many
(a) A program fragment. 1 2 3 4 5 6 7 8 9 10 11 12 13 14