| Ottenstein, K.J. and Ottenstein, L.M., "The program dependence graph in a software development environment," Proceedings of the ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments, (Pittsburgh, PA, April 23-25, 1984), ACM SIGPLAN Notices 19(5) pp. 177-184 (May 1984). |
.... defined to be the set of textual statements in a program upon which a particular statement in the program text depends [125] Program slices are often constructed by performing a backward depth first search in the value dependence graph from the nodes corresponding to the statements of interest[90]. This produces a unidirectional cut. In Section 3.4 we proved that we could produce an executable control flow graph that includes exactly the nodes from the top of a unidirectional cut of the value dependence graph. Yang has proved the similar property, in the context of structured code, that ....
Karl J. Ottenstein and Linda M. Ottenstein. The program dependence graph in a software development environment. In Peter B. Henderson, editor, Proceedings of the ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments (SDE), pages 177--184, Pittsburgh, PA, April 1984.
.... 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 based on combining control ow and forward dominance information to produce control dependence information. There have been several attempts to directly extend these models for application to programs with procedure calls [22, ....
....in a program. Weiser s data ow based algorithms for computing program slices are proved to be conservative for structured programs; precision is a secondary concern about which he makes no claims. Slicing based on dependence graphs is a less costly approach and can produce more precise slices [17, 25, 39]. 7 6 5 2 3 4 1 Data Dependence Control Dependence Figure 2.2: Dependence Graph for Example Code in Figure 2.1. 2.2 History of Dependence Analysis Research Our search of the literature nds that the rst discussion of automated program dependence analysis should be attributed to ....
[Article contains additional citation context not shown here]
K.J. Ottenstein and L.M. Ottenstein. The Program Dependence Graph in a Software Development Environment. In ACM SIGPLAN/SIGSOFT Symposium on Practical Programming Development Environments, pages 177-184, Pittsburgh, Pennsylvania, April 1984. ACM SIGPLAN /SIGSOFT.
....generation to regenerate in the inspector the sequence of accesses to a particular array. In our case, we further restrict slices to the scope defined by the level of communication. There are many techniques for program slicing. We have chosen a simple scheme based on Ottenstein and Ottenstein [49] that maps slicing to a reachability problem in a program dependence graph (PDG) The PDG is a directed graph with vertices corresponding to statements or conditions and edges corresponding to control and data dependences between them. Figure 4.10 shows an algorithm to compute the slice for a ....
Karl J. Ottenstein and Linda M. Ottenstein. The program dependence graph in a software development environment. In Proceedings of the ACM SIGPLAN Software Engineering Symposium on Practical Software Development Environments, pages 177--184, 1984.
.... of Wisconsin 1210 West Dayton Street reps cs.wisc.edu David Binkley Loyola College 4501 North Charles Street Baltimore, MD 21210 binkley cs.loyola.edu This paper made two main contributions: it defined system dependence graphs (SDGs) which extended program dependence graphs (PDGs) [31, 17] to incorporate collections of procedures (with procedure calls) rather than just monolithic programs. It then defined an interprocedural slicing algorithm that identifies the components of the SDG that might affect the values of the variables defined at or used at a given program point p, and or ....
K.J. Ottenstein and L.M. Ottenstein. The program dependence graph in a software development environment. In Softw. Eng. Symp. on Practical Softw. Dev. Environments, pages 177--184, New York, NY, 1984. ACM Press.
....48] was a static one, captured by the slicing criterion, which was a set of variables and a program point. Weiser s original algorithm for static slicing was based upon the iterative solution of control and data flow equations. A more e#cient algorithm was suggested by Ottenstein and Ottenstein [41]. This suggestion lead to the development of the System Dependence Graph, introduced by Horwitz, Reps and Binkley [34] In 1988, Korel and Laski introduced dynamic slicing [37] representing the first move away from static forms of slicing and the consideration of di#erent forms of slicing ....
Karl J. Ottenstein and Linda M. Ottenstein. The program dependence graph in software development environments. SIGPLAN Notices, 19(5):177--184, 1984.
....C program P 1 However, the disadvantages of the SDG based approach include: the execution order independence of the SDG makes some transformations harder to apply and the granularity of the SDG representation is occasionally too coarse. The SDG based syntax preserving slicing algorithm [48, 61] has also been extended to handle slicing programs with goto statements [4, 14, 52] although there are other non SDG based approaches to handling goto statements [1, 38] However, for amorphous slicing, goto statements present less of an issue, because they can be transformed out using standard ....
....this observation in more detail. 6.1 Advantages of the SDG Based Approach over the AST Based Approach The advantages of using the SDG come from having the necessary control and data ow information in one place. This has long been known to simplify the computation of syntax preserving slices [48, 61]. It also assists the computation of the transformations used in amorphous slicing, by reformulating logical constraints in terms of dependence edges. This reformulation makes implementation easier and more ecient. To illustrate one advantage, consider the statement order information ubiquitous ....
[Article contains additional citation context not shown here]
Karl J. Ottenstein and Linda M. Ottenstein. The program dependence graph in software development environments. SIGPLAN Notices, 19(5):177-184, 1984.
....new guards . This approach would yield the slightly amorphous slice depicted in the rightmost section of Figure 14. In 1994, Choi and Ferrante faced a similar problem when attempting to slice unstructured programs. In the presence of goto statements the original PDGbased slicing algorithm [Ottenstein and Ottenstein, 1984], Horwitz et al. 1990] does not produce correct slices. This is because a goto statement is neither the source of a transitive control dependence (because it is not a predicate) nor a transitive data dependence (because it is not an assignment) One solution, adopted by Choi and Ferrante [Choi ....
Ottenstein, K. J. and Ottenstein, L. M. (1984). The program dependence graph in software development environments. SIGPLAN Notices, 19(5):177-184. 37
....we say that a data dependence (DD) relation, from statement s 1 to statement s 2 by a variable v, exists: s 1 defines v, and . s 2 refers to v (we say s uses v) and . at least one execution path from s 1 to s 2 without redefining v exists. # v s 2 . A Program Dependence Graph (PDG)[16] is a directed graph whose nodes represent statements such as conditional predicates or assignment statements in a source program, and whose edges denote dependence relations (CD or DD) between statements. A DD edge is labeled with a variable name a if it denotes s x # a s y . An edge drawn ....
K. J. Ottenstein and L. M. Ottenstein: "The program dependence graph in a software development environment ", Proceedings ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments, pp.177--184, Pittsburgh, Pennsylvania, April (1984).
....of program variables V. His slices are executable programs that are constructed by removing zero or more statements from the original program. His algorithm uses data ow analysis on control ow graphs to compute intraprocedural and interprocedural slices. K. J. Ottenstein and L. M. 0ttenstein [9] de ne a slicing criterion to consist of a program P oint s and a variable v that is de ned or used at s. They use a graph reachability algorithm on a program dependence graph to compute a slice that consists of all statements and predicates of the program that may a ect the value of v at s. S. ....
K.J. Ottenstein and L.M. Ottenstein. The Program Dependence Graph in a Software Development Environment, Proceedings of the ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments, 1984, pp. 177-184.
....the files. The PDG Constructor subsystem reads information from the file and analyze Java source files to construct a PDG, a directed graph whose nodes represent statements in the source program, and whose edges denote dependence relations (data dependence or control dependence) between statements[5]. The Slice Calculation subsystem provides a graphical user interface. A source code viewer shows source code and slice criterions contained in the file. When a programmer selects a slice criterion, the system calculates the slice and indicates it in the viewer. 3. SPARS J : Software Product ....
K. J. Ottenstein and L. M. Ottenstein: "The program dependence graph in a software development environment ", Proceedings of SESPSDE, pp.177--184, Pittsburgh, Pennsylvania, April (1984).
....represented by whole CFGs, whichareembedded in the surrounding TCFG. The START and EXIT nodes of these CFGs are connected to the cobegin and coend nodes with special control ow edges. For sequential programs, the de nition of a slice is given in terms of the standard program dependence graph [13] (PDG) representation of programs where the nodes, representing assignments and conditions in the program, are connected by control and data dependence edges; the PDG of a program can be obtained from its CFGby removing control ow edges and adding the data and control dependency edges. The slice ....
....ow edges and adding the data and control dependency edges. The slice can be de ned with respect to a given node in the PDG as the set of all the nodes on whichthegiven node is directly or transitively dependent. Thus given the PDG, the slice can be computed by a simple reachability algorithm [13]. 0 1 S a= c= b= S 29 S . x 1 8 S a=c 1 START S 5 control dependence (cd) data dependence (dd) interference dependence (id) cobegin START x=a b START c=x 1 cobegin START START c=x 1 c=x 1 ###### ## ### ######## ### ############# ## ### #### ## ###### # ....
K. Ottenstein and L. Ottenstein. The program dependence graph in a software development environment. In ########### ## ### ### ############### ######## ########### ######### ## ######### ######## ########### ############, pages 177-184. ACMSIGSOFT, 1984.
....consists of all statements in P that potentially affect variables in V at position x. Static slices are computed by finding sets of indirectly relevant statements, according to data and control dependencies. The program dependence graph (PDG) was originally defined by Ottenstein and Ottenstein [29] and later refined by Horwitz et al. 16] 30] 31] Data and control dependencies between nodes form a program dependence graph. The static slice of a program with respect to a variable v at a node i, consists of all nodes whose execution could possibly affect the value of the variable v at node ....
....of all nodes whose execution could possibly affect the value of the variable v at node i. A static slice can be constructed from the PDG by traversing backwards along the edges of a program dependence graph starting at a node i. The nodes visited during the traversal constitute the program slice [29]. The major characteristics of static slicing can be summarized as follows. Based on the static nature of the source code analysis, this technique is rather inexpensive with respect to overhead and utilization of system resources. Further, it helps in comprehending the overall program ....
K.Ottenstein, and L.Ottenstein, "The program dependence graph in a software development environment", In Proc. of the ACM SIGSOFT/SIGPLAN Software Engineering, SIGPLAN 19(5), 1984, pp.177-184.
....like testing or debugging it is available in research prototypes and even in commercial products. There are two main approaches to slicing: The original slicing technique from Weiser [19] is based on traditional data flow analysis; the other approach is based on Program Dependence Graphs [13, 6, 7]. Extensive evaluations of different slicing algorithms have not really been done yet for control flow graph based algorithms some data reported by Atkinson and Griswold can be found in [4, 3, 2] The only evaluation of program dependence based algorithms that the author is aware of has been ....
....never been done, 14] reports only limited experience. In the following we introduce different slicing (Section 2) and chopping (Section 4) algorithms, which are evaluated in Section 3 and 5. Conclusions are drawn in Section 6. 1.1. Program Dependence Graphs The Program Dependence Graph (PDG) [13, 6, 7] is a directed graph whose vertices represent the statements and control predicates that occur in a program. It also contains a unique entry vertex. The edges represent the dependences between the components of the program: A control dependence edge from vertex v 1 to v 2 represents that the ....
K. J. Ottenstein and L. M. Ottenstein. The program dependence graph in a software development environment. In Proc. Software Engineering Symposium on Practical Software Development Environments, 1984.
....analysis between program statements in a source program, and dependence analysis consists of two components, data dependence analysis and control dependence analysis. Though many slice calculation algorithms have already been proposed, we use program dependence graph (PDG) in this research [5]. 3.1 Program Dependence Graph A PDG is a directed graph whose nodes represent statements in a source program, and whose edges denote dependence relations (data dependence or control dependence) between statements. An edge drawn from node V s to node V t represents that node V t depends on node ....
K. J. Ottenstein and L. M. Ottenstein: "The program dependence graph in a software development environment ", Proceedings ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments, pp.177--184, Pittsburgh, Pennsylvania, April (1984).
....software test, software metrics etc. A slice of a module at statement s with respect to variable v is the set of all statements and predicates that might affect or be affected by the value of v at s. Initially, the algorithm for computing slices is based on data flow analysis. It is suggested in [7] that program dependence graph (PDG) could be used to compute slices more efficiently and precisely. Such kind of algorithm based on program dependence graphs was presented by Horwitz, Reps, and Binkley [2] where backward slices can be obtained by walking backwards over the program dependence ....
....to obtain all the nodes affected by concerned variables. In traditional procedure based programs, we mainly focus on all kinds of data flows and control flows in procedures or between procedures, which can be computed by graphreachable algorithms [1, 2] or two phase graph reachable algorithms [7]. In order to slice such kind of procedure based programs, one must take three steps: 1) construct program dependence graphs, 2) slice program dependence graphs based on graphreachable or two phase graph reachable algorithms and get sliced program dependence graphs, 3) obtain sliced program from ....
Ottenstein, K J and Ottenstein, L M. The program dependence graph in a software development environment. In Proceedings of the ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments, volume 19(5) of ACM SIGPLAN Notices, 1984, 177-184.
....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 ....
....for class hierarchies. This method provides partial solution of slicing OO programs, since the implicit semantics mentioned above and the friend relationship are not involved in the slice. Object Dependency Figure 1. 1 Dependency and object encapsulation The Program Dependency Graph (PDG) [14] is a graphic representation for traditional imperative programs. The vertices of a PDG represent statements, control predicates, and regions of the program. The edges of a PDG represent data or control dependencies between the vertices. Several extended PDG s (such as [11, 13, 22] were proposed ....
K.J. Ottenstein and L.M. Ottenstein, "The Program Dependence Graph in a Software Development Environment," Proceedings of the ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments, pp. 177-184, 1984.
....a method of program reduction introduced by Mark Weiser [23] A slice of a module at statement s with respect to variable v is the set of all statements and predicates that might affect the value of v at s. Weiser s algorithm for computing slices is based on data flow analysis. It is suggested in [19, 11] that a program dependence graph representation could be used to compute slices more efficiently and precisely. An algorithm for computing slices using a program dependence graph representation is presented by Horwitz, Reps, and Binkley [11] A backward slice is obtained by walking backwards over ....
....how to compute intraprocedural and interprocdural slice. The algorithm for computing intraprocedural slice is graph reachable algorithm. The algorithm for computing interprocedural slice is two phase graph reachable, introduced by Susan B. Horwitz and etc. 10, 11] and Karl J. Ottenstein etc. [19] respectively. In object oriented program, the basic construct is class, except for considering all kinds of dataflow and control flow dependence relationships, we should also consider all other dependence relationships, such as inheritance dependence relationship, message dependence relationship, ....
Karl J. Ottenstein and Linda M. Ottenstein. The program dependence graph in a software development environment. In Proceedings of the 19 ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments, volume 19(5) of ACM SIGPLAN Notices, pages 177-184, 1984.
No context found.
K. J. Ottenstein and L. M. Ottenstein, `The program dependence graph in a software development environment', in Proc. ACM SIG PLAN/SIGSOFT Symposium on Practical Software Development Environments, Pittsburgh, 23-25 April 1984, pp. 177--184. Published as ACM SIGPLAN Notices, 19, (5) (1984) and ACM Software Engineering Notes, 9, (3) (1984).
No context found.
Ottenstein, K.J. and Ottenstein, L.M., "The program dependence graph in a software development environment," Proceedings of the ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments, (Pittsburgh, PA, April 23-25, 1984), ACM SIGPLAN Notices 19(5) pp. 177-184 (May 1984).
No context found.
Ottenstein, K.J. and Ottenstein, L.M., "The program dependence graph in a software development environment," Proceedings of the ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments, (Pittsburgh, PA, Apr. 23-25, 1984), ACM SIGPLAN Notices 19(5) pp. 177-184 (May 1984).
No context found.
Ottenstein, K.J. and Ottenstein, L.M., "The program dependence graph in a software development environment," Proceedings of the ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments, (Pittsburgh, PA, April 23-25, 1984), ACM SIGPLAN Notices 19(5) pp. 177-184 (May 1984).
No context found.
K.J. Ottenstein and L.M. Ottenstein. The program dependence graph in a software development environment. In Proceedings of the ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments, pages 177--184, 1984.
No context found.
Karl J. Ottenstein and Linda M. Ottenstein. The program dependence graph in a software development environment. ACM SIGPLAN Notices, 19(5), May 1984.
No context found.
K. J. Ottenstein and L. M. Ottenstein. The program dependence graph in a software development environment. ACM SIGPLAN Notices, 19(5), May 1984.
No context found.
Karl J. Ottenstein and Linda M. Ottenstein. The program dependence graph in a software development environment. ACM SIGPLAN Notices, 19(5):177-184, 1984.
No context found.
Ottenstein, K. J., and Ottenstein, L. M. The program dependence graph in a software development environment. ACM SIGPLAN Notices 19, 5 (May 1984).
No context found.
Ottenstein, K. J., and Ottenstein, L. M. The program dependence graph in a software development environment. ACM SIGPLAN Notices 19, 5 (May 1984).
No context found.
K. J. Ottenstein and L. M. Ottenstein. The program dependence graph in a software development environment. In Proc. ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments, 1984.
No context found.
K. J. Ottenstein and L. M. Ottenstein. The program dependence graph in a software development environment. In Proceedings of the ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments, pages 177---184, Pittsburg, Pennsylvania, 1984.
No context found.
K. J. Ottenstein and L. M. Ottenstein. The program dependence graph in a software development environment. ACM SIGPLAN Notices 19(5), pages 177-- 184, 1984.
No context found.
K. J. Ottenstein and L. M. Ottenstein. The program dependence graph in a software development environment. In Proceedings of the ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments, pages 177---184, Pittsburg, Pennsylvania, 1984.
No context found.
K J Ottenstein and L M Ottenstein. The program dependence graph in a software development environment. In Proceedings of the ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments, pages 177---184, Pittsburg, Pennsylvania, 1984.
No context found.
K. J. Ottenstein and L. M. Ottenstein, \The Program Dependence Graph in a software Development Environment," ACM Software Engineering Notes, Vol.9, No.3, pp.177-184, 1984.
No context found.
K.J. Ottenstein and L.M. Ottenstein. The program dependence graph in a software development environment. Proc. of the ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments, pages 177-184, 1984.
No context found.
K. Ottenstein and L. Ottenstein. The program dependence graph in a software development environment. In Proc. ACM SIGSOFT/SIGPLAN Software Engineering Symp. on Practical Software Development Environments, pages 177--184, 1984.
No context found.
K. Ottenstein and L. Ottenstein. The program dependence graph in a software development environment. In Proceedings of the ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments, pages 177-184. ACMSIGSOFT, 1984.
No context found.
K.J. Ottenstein and L.M. Ottenstein. The program dependence graph in a software development environment. In Proceedings of the ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments, pages 177--184, 1984. 52
No context found.
Ottenstein, K.J. and Ottenstein, L.M., "The program dependence graph in a software development environment, " Proceedings of the ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments, (Pittsburgh, PA, April 23-25, 1984), ACM SIGPLAN Notices 19(5) pp. 177-184 (May 1984).
No context found.
K. Ottenstein and L. Ottenstein, "The program dependence graph in a software development environment," in Proceedings of the ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments, pp. 177--184, 1984.
No context found.
K. Ottenstein and L. Ottenstein, "The program dependence graph in a software development environment," in Proceedings of the ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments, pp. 177--184, 1984.
No context found.
K. J. Ottenstein and L. M. Ottenstein. The program dependence graph in software development environments. SIGPLAN Notices, 19(5):177-184, 1984.
No context found.
Ottenstein, K.J. and Ottenstein, L.M., "The program dependence graph in a software development environment," Proceedings of the ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments, (Pittsburgh, PA, Apr. 23-25, 1984), ACM SIGPLAN Notices 19(5) pp. 177-184 (May 1984).
No context found.
Ottenstein, K.J. and Ottenstein, L.M., "The program dependence graph in a software development environment," Proceedings of the ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments, (Pittsburgh, PA, April 23-25, 1984), ACM SIGPLAN Notices 19(5) pp. 177-184 (May 1984).
No context found.
K. Ottenstein and L. Ottenstein. The program dependence graph in a software development environment. In Proceedings of the ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments, pages 177--184, 1984.
No context found.
Karl J. Ottenstein and Linda M. Ottenstein. The program dependence graph in a software development environment. Software Development Environments (SDE), pages 177--184, 1984.
No context found.
K.J. Ottenstein and L.M.Ottenstein. The program dependence graph in a software development environment. In ACM SIGSOFT /SIGPLAN Software Engineering Symposium on Practical Software Development Environments, pages 177-184. ACM SIGPLAN Notices 19(5), May, 1984. 15
No context found.
K.J. Ottenstein and L.M. Ottenstein. The Program Dependence Graph in a Software Development Environment. In ACM SIGPLAN/SIGSOFT Symposium on Practical Programming Development Environments, pages 177-184, Pittsburgh, Pennsylvania, April 1984. ACM SIGPLAN /SIGSOFT.
No context found.
K. Ottenstein and L. Ottenstein. The program dependence graph in a software development environment. In Proc. ACM SIGSOFT/SIGPLAN Software Engineering Symp. on Practical Software Development Environments, pages 177--184, 1984.
No context found.
Ottenstein, K., and Ottenstein, L. The program dependence graph in a software development environment. ACM SIGPLAN Notices 19, 5 (May 1984), 177--184. Proceedings of the ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments.
No context found.
Karl J. Ottenstein and Linda M. Ottenstein, `The program dependence graph in a software development environment', Proc. of the ACM SIGSOFT/SIGPLAN Symposium on Practical Software Development Environments, Pittsburgh, Pennsylvania, April 1984, ACM Press. SIGPLAN Notices, 19, (5), 177-- 184 (1984).
First 50 documents Next 50
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