SlideShare uma empresa Scribd logo
1 de 3
Baixar para ler offline
RETROSPECTIVE:



          Interprocedural Slicing Using Dependence Graphs

                   Susan Horwitz                             Thomas Reps                             David Binkley
               Comp. Sci. Department                     Comp. Sci. Department                 Comp. Sci. Department
               University of Wisconsin                   University of Wisconsin                   Loyola College
              1210 West Dayton Street                   1210 West Dayton Street               4501 North Charles Street
                Madison, WI 53706                         Madison, WI 53706                     Baltimore, MD 21210
              horwitz@cs.wisc.edu                         reps@cs.wisc.edu                    binkley@cs.loyola.edu

   This paper made two main contributions: it defined system de-         including arrays [4, 50, 29, 18, 32], reference parameters [20],
pendence graphs (SDGs), which extended program dependence               pointers [28, 19, 10], non-structured control flow [2, 11, 1, 46, 27],
graphs (PDGs) [31, 17] to incorporate collections of procedures         and threads [26, 15, 30].
(with procedure calls) rather than just monolithic programs. It then
defined an interprocedural slicing algorithm that identifies the com-     Context-Sensitive Program Analysis
ponents of the SDG that might affect the values of the variables de-    Nowadays the interprocedural-slicing method of the PLDI 88 pa-
fined at or used at a given program point , and/or how often ex-
                                                                




                                                                        per would be termed a “context-sensitive” interprocedural-slicing
ecutes. The novelty of the algorithm was that it correctly accounts     method. In general, a context-sensitive analysis is one in which
for the calling context of a called procedure, thereby improving on     the analysis of a called procedure is “sensitive” to the context in
the technique for interprocedural slicing algorithm that had been       which it is called. A context-sensitive analysis captures the fact
presented in Mark Weiser’s seminal papers on program slicing [47,       that calls to a procedure through different call sites can have differ-
48].                                                                    ent effects on the program’s execution state. General frameworks
   The paper’s results form part of David Binkley’s Ph.D. thesis [6],   for context-sensitive program analysis already existed in 1988 [13,
and a journal version of the paper was published in TOPLAS [20].        45], although we were not aware of them at the time. Our work was
SDGs are covered by a U.S. patent [40]; algorithms for forward          more influenced by Kastens’s algorithm for building a collection of
and backward slicing were part of the original patent application       cooperating finite-state machines for evaluating derivation trees of
that was submitted, but the Wisconsin Alumni Research Founda-           attribute grammars [24] (see below).
tion decided that enough money had been spent by the time the              The two other papers in the session at PLDI 88 in which
patent office was convinced that Claim 1 (SDGs) was patentable.          our paper was presented [8, 12] actually foreshadowed a ma-
   The data structures and slicing algorithms described in the paper
                                                  ¡
                                                                        jor direction that our work was to take subsequently: Calla-
are used in one commercial product, CodeSurfer R , a tool for code      han presented a context-sensitive algorithm for a certain kind of
understanding and inspection that supports browsing and slicing of      dataflow-analysis problem [8]; Cooper and Kennedy presented a
dependence graphs. CodeSurfer is available from GrammaTech,             graph-reachability algorithm for finding procedures’ MayMod and
Inc. (see http://www.grammatech.com/products/codesurfer/). (The         MayUse sets (which summarize possible side-effects of procedure
slicing algorithm used in CodeSurfer is actually based on the im-       calls on global variables) [12]. Later work by Horwitz, Reps, and
proved method described in [23].)                                       collaborators showed how many dataflow-analysis problems simi-
   The PLDI 88 paper was careful to state what slicing problem it       lar to the one that Callahan addressed could be turned into graph-
did not solve, i.e., that of producing a slice that is an executable    reachability problems in a fashion similar to the technique used in
projection of the original program. The reason has to do with mul-      the Cooper-Kennedy paper—and then solved using algorithms very
tiple calls to the same procedure: in general, a slice may include      similar to the Horwitz-Reps-Binkley interprocedural-slicing algo-
more than one such call, and at each, a different subset of the pro-    rithm. However, even though the three papers were presented in
cedure’s parameters may be in the slice. An extended slicing al-        the same hour and a half session at PLDI 88, the act of combining
gorithm that addresses this parameter-mismatch problem was later        their techniques did not occur for another six years.
given by Binkley [7].
   The PLDI 88 paper was couched in terms of a very simple pro-         Context-Free-Language Reachability
gramming language. However, one can think of SDGs as a class            The PLDI 88 paper pointed out a correspondence between the call
of program representations: to represent programs in different pro-     structure of a program and a context-free grammar, and between
gramming languages, one uses different variants of PDGs contain-        the intraprocedural transitive dependences among a PDG’s param-
ing nodes and edges that capture the features and constructs of the     eter nodes and the dependences among attributes in an attribute
language. The issue of how to create appropriate PDGs/SDGs is           grammar [25]. Our paper exploited this correspondence to compute
really orthogonal to the issue of how to slice them. There has been     summary edges that were added to the SDG at call sites to capture
considerable work on how to build dependence graphs for the fea-        certain transitive dependences. The transitive dependences of inter-
tures and constructs found in real-world programming languages,         est are very much like the transitive dependences captured by the
                                                                        characteristic graphs of an attribute grammar’s nonterminals; the
                                                                        algorithm for identifying summary edges was inspired by the first
20 Years of the ACM/SIGPLAN Conference on Programming Language
Design and Implementation (1979-1999): A Selection, 2003.               two passes of the algorithm for creating the “TDS graphs” that are
Copyright 2003 ACM 1-58113-623-4 ...$5.00.                              used to define the class of ordered attribute grammars [24]. This
yields a slicing algorithm that is quartic (i.e.,       ) in a certain
                                                              ¨¦¤¢ 
                                                             § ¥ £¡       orated on in a sequence of papers that showed the utility of the
size parameter of the problem.                                            approach for both exhaustive and demand program-analysis prob-
   Given what we have learned in the last fifteen years, if we were to     lems [23, 41, 21, 22]. These algorithms all have cubic worst-case
write the paper today, we would describe the work somewhat differ-        running time (and use quadratic space), although for some interest-
ently: in addition to describing the problem as a context-sensitive       ing special cases, such as gen-kill dataflow-analysis problems, they
analysis, we would say that the algorithm for identifying summary         run in linear time and use linear space.
edges was a tabulation algorithm (or a dynamic-programming al-               Although the authors became aware of the connection to the
gorithm); we might explain how interprocedural slicing can be for-        more general concept of CFL-reachability sometime in the fall of
mulated in terms of a simple logic program, along the lines of [35];      1994, of the papers from this period, only [36] mentions CFL-
and we would explain how the interprocedural-slicing problem is           reachability explicitly and references Yannakakis’s paper [51].
an example of the following kind of generalized graph-reachability           Sagiv, Reps, and Horwitz used similar ideas—but went beyond
problem in which labels on the edges of the graph are used to filter       just CFL-reachability—to give more powerful, but still cubic-time,
out paths that are not of interest:                                       interprocedural dataflow-analysis algorithms [44]. Among other
                                                                          benefits, this work showed how to obtain precise jump functions for
      A path    from vertex to vertex only counts as a
                      ©                                                 certain classes of interprocedural constant-propagation problems,
      “valid connection” between and if the word spelled
                                                                        thereby improving on those developed by Callahan et al. in their
      out by (i.e., the concatenation, in order, of the labels
                  ©                                                       CC 86 paper [9].
      on the edges of ) is in a certain language.
                               ©                                             The CFL-reachability viewpoint has also yielded results on
                                                                          inherent computational limitations related to slicing and other
When the filter language is a context-free language, this is called
                                                                          program-analysis problems [37, 39, 33]. Other work that has
CFL-reachability, a concept originated by Yannakakis in 1990 [51].
                                                                          adopted the CFL-reachability model has addressed such topics as
CFL-reachability problems can be solved in time cubic in the num-
                                                                          program chopping [42], type checking [34], model checking [3, 5],
ber of nodes in the graph (and, in general, no algorithm with a
                                                                          and bug detection [14].
better running time is known). For a survey of ways in which CFL-
reachability applies to program-analysis problems, see [38].
   (A slight clash in terminology exists. In formal-language theory,      REFERENCES
the “context-sensitive languages” are a strictly more powerful for-        [1] H. Agrawal. On slicing programs with jump statements. In
malism than the context-free languages. Unfortunately, the prin-               Conf. on Prog. Lang. Design and Impl., pages 302–312,
ciple that context-free-language reachability captures an essential            1994.
aspect of context-sensitive analysis was fully articulated [38] only       [2] T. Ball and S. Horwitz. Slicing programs with arbitrary
after the term “context-sensitive analysis” had been adopted by the            control-flow. In Int. Workshop on Automated and
programming-languages community [16, 49].)                                     Algorithmic Debugging, pages 206–222, 1993.
   In the case of interprocedural slicing (and in many other context-      [3] T. Ball and S.K. Rajamani. Bebop: A path-sensitive
sensitive program-analysis problems) the filter language is a lan-              interprocedural dataflow engine. In Workshop on Prog.
guage of matched parentheses (also called a Dyck language). In                 Analysis for Softw. Tools and Eng., New York, NY, June
essence, the PLDI 88 paper used a language of partially balanced               2001. ACM Press.
parentheses to exclude from consideration paths in which calls and         [4] U. Bannerjee. Speedup of Ordinary Programs. PhD thesis,
returns are mismatched. The parentheses are defined as follows                  Dept. of Comp. Sci., Univ. of Illinois, Urbana, IL, October
[23]: Let each call-site node in SDG be given a unique index
                                                                              1979.
from 1 to TotalCallSites, where TotalCallSites is the total number         [5] M. Benedikt, P. Godefroid, and T. Reps. Model checking of
of call sites in the program. For each call site , label the outgoing
                                                                            unrestricted hierarchical state machines. In ICALP ’01, 2001.
parameter-in edges and the incoming parameter-out edges with the           [6] D. Binkley. Multi-Procedure Program Integration. PhD
symbols “ ” and “ ”, respectively; label the outgoing call edge
             ¡           §                                                   thesis, Comp. Sci. Dept., Univ. of Wisconsin, Madison, WI,
with “ ”. Label all other edges in with the symbol .
       ¡                                                                   August 1991. Tech. Rep. TR-1038.
   Dyck languages had been used in earlier work on interprocedu-           [7] D. Binkley. Precise executable interprocedural slices. Let. on
ral dataflow analysis by Sharir and Pnueli to specify that the con-             Prog. Lang. and Syst., 2:31–45, 1993.
tributions of certain kinds of infeasible execution paths should be        [8] D. Callahan. The program summary graph and flow-sensitive
filtered out [45]; however, the dataflow-analysis algorithms given               interprocedural data flow analysis. In Conf. on Prog. Lang.
by Sharir and Pnueli are not based on graph reachability.                      Design and Impl., pages 47–56, New York, NY, 1988. ACM
   As mentioned above, the algorithm given in the PLDI 88 paper is             Press.
of quartic time complexity. However, Dyck languages are context-           [9] D. Callahan, K.D. Cooper, K. Kennedy, and L. Torczon.
free, which means that Yannakakis’s result applies. Although Yan-              Interprocedural constant propagation. In Symp. on Comp.
nakakis’s work means that all CFL-reachability problems can be                 Construct., pages 152–161, 1986.
solved in time cubic in the number of graph nodes, one can some-          [10] D.R. Chase, M. Wegman, and F. Zadeck. Analysis of
times do asymptotically better than this by taking advantage of the            pointers and structures. In Conf. on Prog. Lang. Design and
structure of the graph that arises in a particular subclass of prob-           Impl., pages 296–310, New York, NY, 1990. ACM Press.
lems. For instance, an improved algorithm for interprocedural slic-       [11] J.-D. Choi and J. Ferrante. Static slicing in the presence of
ing is described in [23]; this algorithm is cubic in a certain size            goto statements. Trans. on Prog. Lang. and Syst.,
parameter, but this parameter is usually smaller than the size of the          16(4):1096–1113, 1994.
SDG’s node set.                                                           [12] K.D. Cooper and K. Kennedy. Interprocedural side-effect
   Dyck-language reachability was shown by Reps, Sagiv, and Hor-               analysis in linear time. In Conf. on Prog. Lang. Design and
witz to provide algorithms for a wide variety of interprocedural               Impl., pages 57–66, New York, NY, 1988. ACM Press.
program-analysis problems [43], including the one that was ad-            [13] P. Cousot and R. Cousot. Static determination of dynamic
dressed in Callahan’s PLDI 88 paper [8]. These ideas were elab-                properties of recursive procedures. In E.J. Neuhold, editor,
Formal Descriptions of Programming Concepts, (IFIP WG            [33] G. Ramalingam. Context-sensitive synchronization-sensitive
       2.2, St. Andrews, Canada, August 1977), pages 237–277.                analysis is undecidable. Trans. on Prog. Lang. and Syst.,
       North-Holland, 1978.                                                  22(2):416–430, 2000.
[14]   M. Das, S. Lerner, and M. Seigle. ESP: Path-sensitive            [34] J. Rehof and M. F¨ hndrich. Type-base flow analysis: From
                                                                                                a
       program verification in polynomial time. In Conf. on Prog.             polymorphic subtyping to CFL-reachability. In Symp. on
       Lang. Design and Impl., pages 57–68, New York, NY, 2002.              Princ. of Prog. Lang., pages 54–66, New York, NY, 2001.
       ACM Press.                                                            ACM Press.
[15]   M.B. Dwyer, J.C. Corbett, J. Hatcliff, S. Sokolowski, and        [35] T. Reps. Demand interprocedural program analysis using
       H. Zheng. Slicing multi-threaded Java programs: A case                logic databases. In R. Ramakrishnan, editor, Applications of
       study. Tech. Rep. 99-7, Dept. of Comp. and Inf. Sci., Kansas          Logic Databases. Kluwer Academic Publishers, 1994.
       State Univ., Manhattan, KS, February 1999.                       [36] T. Reps. Shape analysis as a generalized path problem. In
[16]   M. Emami, R. Ghiya, and L. Hendren. Context-sensitive                 Symp. on Part. Eval. and Semantics-Based Prog. Manip.,
       interprocedural points-to analysis in the presence of function        pages 1–11, New York, NY, June 1995. ACM Press.
       pointers. In Conf. on Prog. Lang. Design and Impl., New          [37] T. Reps. On the sequential nature of interprocedural
       York, NY, 1994. ACM Press.                                            program-analysis problems. Acta Inf., 33:739–757, 1996.
[17]   J. Ferrante, K. Ottenstein, and J. Warren. The program           [38] T. Reps. Program analysis via graph reachability. Inf. and
       dependence graph and its use in optimization. Trans. on               Softw. Tech., 40(11-12):701–726, November 1998.
       Prog. Lang. and Syst., 3(9):319–349, 1987.                       [39] T. Reps. Undecidability of context-sensitive data-dependence
[18]   G. Goff, K. Kennedy, and C.-W. Tseng. Practical dependence            analysis. Trans. on Prog. Lang. and Syst., 22(1):162–186,
       testing. In Conf. on Prog. Lang. Design and Impl., pages              January 2000.
       15–29, New York, NY, 1991. ACM Press.                            [40] T. Reps, S. Horwitz, and D. Binkley. U.S. Patent Number
[19]   S. Horwitz, P. Pfeiffer, and T. Reps. Dependence analysis for         5,161,216, Interprocedural slicing of computer programs
       pointer variables. In Conf. on Prog. Lang. Design and Impl.,          using dependence graphs, November 1992.
       pages 28–40, New York, NY, 1989. ACM Press.                      [41] T. Reps, S. Horwitz, and M. Sagiv. Precise interprocedural
[20]   S. Horwitz, T. Reps, and D. Binkley. Interprocedural slicing          dataflow analysis via graph reachability. In Symp. on Princ.
       using dependence graphs. Trans. on Prog. Lang. and Syst.,             of Prog. Lang., pages 49–61, New York, NY, 1995. ACM
       12(1):26–60, January 1990.                                            Press.
[21]   S. Horwitz, T. Reps, and M. Sagiv. Demand interprocedural        [42] T. Reps and G. Rosay. Precise interprocedural chopping. In
       dataflow analysis. In Symp. on the Found. of Softw. Eng.,              Symp. on the Found. of Softw. Eng., New York, NY, October
       pages 104–115, New York, NY, October 1995. ACM Press.                 1995. ACM Press.
[22]   S. Horwitz, T. Reps, and M. Sagiv. Demand interprocedural        [43] T. Reps, M. Sagiv, and S. Horwitz. Interprocedural dataflow
       dataflow analysis. report TR-1283, Comp. Sci. Dept., Univ.             analysis via graph reachability. Tech. Rep. TR 94-14,
       of Wisconsin, August 1995. Available at                               Datalogisk Institut, Univ. of Copenhagen, 1994. Available at
       “http://www.cs.wisc.edu/wpis/papers/tr1283r.ps”.                      “http://www.cs.wisc.edu/wpis/papers/diku-tr94-14.ps”.
[23]   S. Horwitz, T. Reps, M. Sagiv, and G. Rosay. Speeding up         [44] M. Sagiv, T. Reps, and S. Horwitz. Precise interprocedural
       slicing. In Symp. on the Found. of Softw. Eng., pages 11–20,          dataflow analysis with applications to constant propagation.
       New York, NY, December 1994. ACM Press.                               Theor. Comp. Sci., 167:131–170, 1996.
[24]   U. Kastens. Ordered attribute grammars. Acta Inf.,               [45] M. Sharir and A. Pnueli. Two approaches to interprocedural
       13(3):229–256, 1980.                                                  data flow analysis. In S.S. Muchnick and N.D. Jones, editors,
[25]   D.E. Knuth. Semantics of context-free languages. Math. Syst.          Program Flow Analysis: Theory and Applications, chapter 7,
       Theory, 2:127–145, 1968.                                              pages 189–234. Prentice-Hall, Englewood Cliffs, NJ, 1981.
[26]   J. Krinke. Static slicing of threaded programs. In Workshop      [46] S. Sinha, M. Harrold, and G. Rothermel.
       on Prog. Analysis for Softw. Tools and Eng., June 1998.               System-dependence-graph-based slicing of programs with
[27]   S. Kumar and S. Horwitz. Better slicing of programs with              arbitrary control flow. In Int. Conf. on Softw. Eng., pages
       jumps and switches. In Colloq on Formal Approaches in                 432–441, Wash., DC, 1999. IEEE Comp. Soc.
       Softw. Eng., pages 96–112, 2002.                                 [47] M. Weiser. Program slicing. In Int. Conf. on Softw. Eng.,
[28]   J.R. Larus and P.N. Hilfinger. Detecting conflicts between              pages 439–449, Wash., DC, 1981. IEEE Comp. Soc.
       structure accesses. In Conf. on Prog. Lang. Design and Impl.,    [48] M. Weiser. Program slicing. Trans. on Softw. Eng.,
       pages 21–34, New York, NY, 1988. ACM Press.                           SE-10(4):352–357, July 1984.
[29]   D.E. Maydan, J.L. Hennessy, and M.S. Lam. Efficient and           [49] R.P. Wilson and M.S. Lam. Efficient context-sensitive
       exact data dependence analysis. In Conf. on Prog. Lang.               pointer analysis for C programs. In Conf. on Prog. Lang.
       Design and Impl., pages 1–14, New York, NY, 1991. ACM                 Design and Impl., pages 1–12, New York, NY, 1995. ACM
       Press.                                                                Press.
[30]   M. Nanda and S. Ramesh. Slicing concurrent programs. In          [50] M.J. Wolfe. Optimizing Supercompilers for Supercomputers.
       Symp. on Softw. Testing and Analysis, August 2000.                    PhD thesis, Dept. of Comp. Sci., Univ. of Illinois, Urbana,
[31]   K.J. Ottenstein and L.M. Ottenstein. The program                      IL, October 1982.
       dependence graph in a software development environment.          [51] M. Yannakakis. Graph-theoretic methods in database theory.
       In Softw. Eng. Symp. on Practical Softw. Dev. Environments,           In Symp. on Princ. of Database Syst., pages 230–242, 1990.
       pages 177–184, New York, NY, 1984. ACM Press.
[32]   W. Pugh and D. Wonnacott. Eliminating false data
       dependences using the Omega test. In Conf. on Prog. Lang.
       Design and Impl., pages 140–151, New York, NY, 1992.
       ACM Press.

Mais conteúdo relacionado

Mais procurados

De-virtualizing virtual Function Calls using various Type Analysis Technique...
De-virtualizing virtual Function Calls using various Type  Analysis Technique...De-virtualizing virtual Function Calls using various Type  Analysis Technique...
De-virtualizing virtual Function Calls using various Type Analysis Technique...IOSR Journals
 
International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER)International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER)ijceronline
 
The Search of New Issues in the Detection of Near-duplicated Documents
The Search of New Issues in the Detection of Near-duplicated DocumentsThe Search of New Issues in the Detection of Near-duplicated Documents
The Search of New Issues in the Detection of Near-duplicated Documentsijceronline
 
AttnGAN: Fine-Grained Text to Image Generation with Attentional Generative Ad...
AttnGAN: Fine-Grained Text to Image Generation with Attentional Generative Ad...AttnGAN: Fine-Grained Text to Image Generation with Attentional Generative Ad...
AttnGAN: Fine-Grained Text to Image Generation with Attentional Generative Ad...Willy Marroquin (WillyDevNET)
 
An Approach for Project Scheduling Using PERT/CPM and Petri Nets (PNs) Tools
An Approach for Project Scheduling Using PERT/CPM and Petri Nets (PNs) ToolsAn Approach for Project Scheduling Using PERT/CPM and Petri Nets (PNs) Tools
An Approach for Project Scheduling Using PERT/CPM and Petri Nets (PNs) ToolsIJMER
 
Language independent document
Language independent documentLanguage independent document
Language independent documentijcsit
 
SUPERVISED LEARNING METHODS FOR BANGLA WEB DOCUMENT CATEGORIZATION
SUPERVISED LEARNING METHODS FOR BANGLA WEB DOCUMENT CATEGORIZATIONSUPERVISED LEARNING METHODS FOR BANGLA WEB DOCUMENT CATEGORIZATION
SUPERVISED LEARNING METHODS FOR BANGLA WEB DOCUMENT CATEGORIZATIONijaia
 
[Ris cy business]
[Ris cy business][Ris cy business]
[Ris cy business]Dino, llc
 
Comparative analysis of algorithms_MADI
Comparative analysis of algorithms_MADIComparative analysis of algorithms_MADI
Comparative analysis of algorithms_MADISayed Rahman
 
A hybrid naïve Bayes based on similarity measure to optimize the mixed-data c...
A hybrid naïve Bayes based on similarity measure to optimize the mixed-data c...A hybrid naïve Bayes based on similarity measure to optimize the mixed-data c...
A hybrid naïve Bayes based on similarity measure to optimize the mixed-data c...TELKOMNIKA JOURNAL
 

Mais procurados (10)

De-virtualizing virtual Function Calls using various Type Analysis Technique...
De-virtualizing virtual Function Calls using various Type  Analysis Technique...De-virtualizing virtual Function Calls using various Type  Analysis Technique...
De-virtualizing virtual Function Calls using various Type Analysis Technique...
 
International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER)International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER)
 
The Search of New Issues in the Detection of Near-duplicated Documents
The Search of New Issues in the Detection of Near-duplicated DocumentsThe Search of New Issues in the Detection of Near-duplicated Documents
The Search of New Issues in the Detection of Near-duplicated Documents
 
AttnGAN: Fine-Grained Text to Image Generation with Attentional Generative Ad...
AttnGAN: Fine-Grained Text to Image Generation with Attentional Generative Ad...AttnGAN: Fine-Grained Text to Image Generation with Attentional Generative Ad...
AttnGAN: Fine-Grained Text to Image Generation with Attentional Generative Ad...
 
An Approach for Project Scheduling Using PERT/CPM and Petri Nets (PNs) Tools
An Approach for Project Scheduling Using PERT/CPM and Petri Nets (PNs) ToolsAn Approach for Project Scheduling Using PERT/CPM and Petri Nets (PNs) Tools
An Approach for Project Scheduling Using PERT/CPM and Petri Nets (PNs) Tools
 
Language independent document
Language independent documentLanguage independent document
Language independent document
 
SUPERVISED LEARNING METHODS FOR BANGLA WEB DOCUMENT CATEGORIZATION
SUPERVISED LEARNING METHODS FOR BANGLA WEB DOCUMENT CATEGORIZATIONSUPERVISED LEARNING METHODS FOR BANGLA WEB DOCUMENT CATEGORIZATION
SUPERVISED LEARNING METHODS FOR BANGLA WEB DOCUMENT CATEGORIZATION
 
[Ris cy business]
[Ris cy business][Ris cy business]
[Ris cy business]
 
Comparative analysis of algorithms_MADI
Comparative analysis of algorithms_MADIComparative analysis of algorithms_MADI
Comparative analysis of algorithms_MADI
 
A hybrid naïve Bayes based on similarity measure to optimize the mixed-data c...
A hybrid naïve Bayes based on similarity measure to optimize the mixed-data c...A hybrid naïve Bayes based on similarity measure to optimize the mixed-data c...
A hybrid naïve Bayes based on similarity measure to optimize the mixed-data c...
 

Destaque

Η ανάγκη για νέες πρακτικές στη διαχείρση του νερού στην Κύπρο
Η ανάγκη για νέες πρακτικές στη διαχείρση  του νερού στην ΚύπροΗ ανάγκη για νέες πρακτικές στη διαχείρση  του νερού στην Κύπρο
Η ανάγκη για νέες πρακτικές στη διαχείρση του νερού στην ΚύπροCyprus Technical University
 
Improving Register Allocation For Subscripted Variables
Improving Register Allocation For Subscripted VariablesImproving Register Allocation For Subscripted Variables
Improving Register Allocation For Subscripted Variablesjames marioki
 
Interprocedural Constant Propagation
Interprocedural Constant PropagationInterprocedural Constant Propagation
Interprocedural Constant Propagationjames marioki
 

Destaque (8)

introScrumCAT
introScrumCATintroScrumCAT
introScrumCAT
 
Η ανάγκη για νέες πρακτικές στη διαχείρση του νερού στην Κύπρο
Η ανάγκη για νέες πρακτικές στη διαχείρση  του νερού στην ΚύπροΗ ανάγκη για νέες πρακτικές στη διαχείρση  του νερού στην Κύπρο
Η ανάγκη για νέες πρακτικές στη διαχείρση του νερού στην Κύπρο
 
Improving Register Allocation For Subscripted Variables
Improving Register Allocation For Subscripted VariablesImproving Register Allocation For Subscripted Variables
Improving Register Allocation For Subscripted Variables
 
VANGELO della DOMENICA
VANGELO  della DOMENICAVANGELO  della DOMENICA
VANGELO della DOMENICA
 
La Quaresima 2
La Quaresima 2La Quaresima 2
La Quaresima 2
 
Perché Sono Nato, Dice Dio
Perché Sono Nato, Dice DioPerché Sono Nato, Dice Dio
Perché Sono Nato, Dice Dio
 
Interprocedural Constant Propagation
Interprocedural Constant PropagationInterprocedural Constant Propagation
Interprocedural Constant Propagation
 
Perché Sono Nato, Dice Dio
Perché Sono Nato, Dice DioPerché Sono Nato, Dice Dio
Perché Sono Nato, Dice Dio
 

Semelhante a Interprocedural Slicing Using Dependence Graphs

factorization methods
factorization methodsfactorization methods
factorization methodsShaina Raza
 
A Refinement Calculus For The Synthesis Of Verified Hardware Descriptions In ...
A Refinement Calculus For The Synthesis Of Verified Hardware Descriptions In ...A Refinement Calculus For The Synthesis Of Verified Hardware Descriptions In ...
A Refinement Calculus For The Synthesis Of Verified Hardware Descriptions In ...Allison Koehn
 
IRJET- Review on Scheduling using Dependency Structure Matrix
IRJET-  	  Review on Scheduling using Dependency Structure MatrixIRJET-  	  Review on Scheduling using Dependency Structure Matrix
IRJET- Review on Scheduling using Dependency Structure MatrixIRJET Journal
 
RSDC (Reliable Scheduling Distributed in Cloud Computing)
RSDC (Reliable Scheduling Distributed in Cloud Computing)RSDC (Reliable Scheduling Distributed in Cloud Computing)
RSDC (Reliable Scheduling Distributed in Cloud Computing)IJCSEA Journal
 
10.1.1.104.5038
10.1.1.104.503810.1.1.104.5038
10.1.1.104.503896565
 
An Institutional Theory For -Components
An Institutional Theory For  -ComponentsAn Institutional Theory For  -Components
An Institutional Theory For -ComponentsScott Faria
 
Concurrency Issues in Object-Oriented Modeling
Concurrency Issues in Object-Oriented ModelingConcurrency Issues in Object-Oriented Modeling
Concurrency Issues in Object-Oriented ModelingIRJET Journal
 
A new reverse engineering approach to
A new reverse engineering approach toA new reverse engineering approach to
A new reverse engineering approach toijseajournal
 
Systematic software development using vdm by jones 2nd edition
Systematic software development using vdm by jones 2nd editionSystematic software development using vdm by jones 2nd edition
Systematic software development using vdm by jones 2nd editionYasir Raza Khan
 
Systematic software development using vdm by jones 2nd edition
Systematic software development using vdm by jones 2nd editionSystematic software development using vdm by jones 2nd edition
Systematic software development using vdm by jones 2nd editionYasir Raza Khan
 
Ieeepro techno solutions 2014 ieee java project - deadline based resource p...
Ieeepro techno solutions   2014 ieee java project - deadline based resource p...Ieeepro techno solutions   2014 ieee java project - deadline based resource p...
Ieeepro techno solutions 2014 ieee java project - deadline based resource p...hemanthbbc
 
Ieeepro techno solutions 2014 ieee dotnet project - deadline based resource...
Ieeepro techno solutions   2014 ieee dotnet project - deadline based resource...Ieeepro techno solutions   2014 ieee dotnet project - deadline based resource...
Ieeepro techno solutions 2014 ieee dotnet project - deadline based resource...ASAITHAMBIRAJAA
 
Ieeepro techno solutions 2014 ieee dotnet project - deadline based resource...
Ieeepro techno solutions   2014 ieee dotnet project - deadline based resource...Ieeepro techno solutions   2014 ieee dotnet project - deadline based resource...
Ieeepro techno solutions 2014 ieee dotnet project - deadline based resource...ASAITHAMBIRAJAA
 
Surrogate modeling for industrial design
Surrogate modeling for industrial designSurrogate modeling for industrial design
Surrogate modeling for industrial designShinwoo Jang
 
Re2018 Semios for Requirements
Re2018 Semios for RequirementsRe2018 Semios for Requirements
Re2018 Semios for RequirementsClément Portet
 
PresentationTest
PresentationTestPresentationTest
PresentationTestbolu804
 
Master thesis Francesco Serafin
Master thesis Francesco SerafinMaster thesis Francesco Serafin
Master thesis Francesco SerafinRiccardo Rigon
 

Semelhante a Interprocedural Slicing Using Dependence Graphs (20)

factorization methods
factorization methodsfactorization methods
factorization methods
 
A Refinement Calculus For The Synthesis Of Verified Hardware Descriptions In ...
A Refinement Calculus For The Synthesis Of Verified Hardware Descriptions In ...A Refinement Calculus For The Synthesis Of Verified Hardware Descriptions In ...
A Refinement Calculus For The Synthesis Of Verified Hardware Descriptions In ...
 
IRJET- Review on Scheduling using Dependency Structure Matrix
IRJET-  	  Review on Scheduling using Dependency Structure MatrixIRJET-  	  Review on Scheduling using Dependency Structure Matrix
IRJET- Review on Scheduling using Dependency Structure Matrix
 
RSDC (Reliable Scheduling Distributed in Cloud Computing)
RSDC (Reliable Scheduling Distributed in Cloud Computing)RSDC (Reliable Scheduling Distributed in Cloud Computing)
RSDC (Reliable Scheduling Distributed in Cloud Computing)
 
10.1.1.104.5038
10.1.1.104.503810.1.1.104.5038
10.1.1.104.5038
 
An Institutional Theory For -Components
An Institutional Theory For  -ComponentsAn Institutional Theory For  -Components
An Institutional Theory For -Components
 
Concurrency Issues in Object-Oriented Modeling
Concurrency Issues in Object-Oriented ModelingConcurrency Issues in Object-Oriented Modeling
Concurrency Issues in Object-Oriented Modeling
 
A new reverse engineering approach to
A new reverse engineering approach toA new reverse engineering approach to
A new reverse engineering approach to
 
Thesis Proposal Presentation
Thesis Proposal PresentationThesis Proposal Presentation
Thesis Proposal Presentation
 
Systematic software development using vdm by jones 2nd edition
Systematic software development using vdm by jones 2nd editionSystematic software development using vdm by jones 2nd edition
Systematic software development using vdm by jones 2nd edition
 
Systematic software development using vdm by jones 2nd edition
Systematic software development using vdm by jones 2nd editionSystematic software development using vdm by jones 2nd edition
Systematic software development using vdm by jones 2nd edition
 
P229 godfrey
P229 godfreyP229 godfrey
P229 godfrey
 
Ieeepro techno solutions 2014 ieee java project - deadline based resource p...
Ieeepro techno solutions   2014 ieee java project - deadline based resource p...Ieeepro techno solutions   2014 ieee java project - deadline based resource p...
Ieeepro techno solutions 2014 ieee java project - deadline based resource p...
 
Ieeepro techno solutions 2014 ieee dotnet project - deadline based resource...
Ieeepro techno solutions   2014 ieee dotnet project - deadline based resource...Ieeepro techno solutions   2014 ieee dotnet project - deadline based resource...
Ieeepro techno solutions 2014 ieee dotnet project - deadline based resource...
 
Ieeepro techno solutions 2014 ieee dotnet project - deadline based resource...
Ieeepro techno solutions   2014 ieee dotnet project - deadline based resource...Ieeepro techno solutions   2014 ieee dotnet project - deadline based resource...
Ieeepro techno solutions 2014 ieee dotnet project - deadline based resource...
 
Surrogate modeling for industrial design
Surrogate modeling for industrial designSurrogate modeling for industrial design
Surrogate modeling for industrial design
 
020523+the+programmers+apprentice.ppt
020523+the+programmers+apprentice.ppt020523+the+programmers+apprentice.ppt
020523+the+programmers+apprentice.ppt
 
Re2018 Semios for Requirements
Re2018 Semios for RequirementsRe2018 Semios for Requirements
Re2018 Semios for Requirements
 
PresentationTest
PresentationTestPresentationTest
PresentationTest
 
Master thesis Francesco Serafin
Master thesis Francesco SerafinMaster thesis Francesco Serafin
Master thesis Francesco Serafin
 

Último

"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxRemote DBA Services
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 

Último (20)

"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 

Interprocedural Slicing Using Dependence Graphs

  • 1. RETROSPECTIVE: Interprocedural Slicing Using Dependence Graphs Susan Horwitz Thomas Reps David Binkley Comp. Sci. Department Comp. Sci. Department Comp. Sci. Department University of Wisconsin University of Wisconsin Loyola College 1210 West Dayton Street 1210 West Dayton Street 4501 North Charles Street Madison, WI 53706 Madison, WI 53706 Baltimore, MD 21210 horwitz@cs.wisc.edu reps@cs.wisc.edu binkley@cs.loyola.edu This paper made two main contributions: it defined system de- including arrays [4, 50, 29, 18, 32], reference parameters [20], pendence graphs (SDGs), which extended program dependence pointers [28, 19, 10], non-structured control flow [2, 11, 1, 46, 27], graphs (PDGs) [31, 17] to incorporate collections of procedures and threads [26, 15, 30]. (with procedure calls) rather than just monolithic programs. It then defined an interprocedural slicing algorithm that identifies the com- Context-Sensitive Program Analysis ponents of the SDG that might affect the values of the variables de- Nowadays the interprocedural-slicing method of the PLDI 88 pa- fined at or used at a given program point , and/or how often ex-     per would be termed a “context-sensitive” interprocedural-slicing ecutes. The novelty of the algorithm was that it correctly accounts method. In general, a context-sensitive analysis is one in which for the calling context of a called procedure, thereby improving on the analysis of a called procedure is “sensitive” to the context in the technique for interprocedural slicing algorithm that had been which it is called. A context-sensitive analysis captures the fact presented in Mark Weiser’s seminal papers on program slicing [47, that calls to a procedure through different call sites can have differ- 48]. ent effects on the program’s execution state. General frameworks The paper’s results form part of David Binkley’s Ph.D. thesis [6], for context-sensitive program analysis already existed in 1988 [13, and a journal version of the paper was published in TOPLAS [20]. 45], although we were not aware of them at the time. Our work was SDGs are covered by a U.S. patent [40]; algorithms for forward more influenced by Kastens’s algorithm for building a collection of and backward slicing were part of the original patent application cooperating finite-state machines for evaluating derivation trees of that was submitted, but the Wisconsin Alumni Research Founda- attribute grammars [24] (see below). tion decided that enough money had been spent by the time the The two other papers in the session at PLDI 88 in which patent office was convinced that Claim 1 (SDGs) was patentable. our paper was presented [8, 12] actually foreshadowed a ma- The data structures and slicing algorithms described in the paper ¡ jor direction that our work was to take subsequently: Calla- are used in one commercial product, CodeSurfer R , a tool for code han presented a context-sensitive algorithm for a certain kind of understanding and inspection that supports browsing and slicing of dataflow-analysis problem [8]; Cooper and Kennedy presented a dependence graphs. CodeSurfer is available from GrammaTech, graph-reachability algorithm for finding procedures’ MayMod and Inc. (see http://www.grammatech.com/products/codesurfer/). (The MayUse sets (which summarize possible side-effects of procedure slicing algorithm used in CodeSurfer is actually based on the im- calls on global variables) [12]. Later work by Horwitz, Reps, and proved method described in [23].) collaborators showed how many dataflow-analysis problems simi- The PLDI 88 paper was careful to state what slicing problem it lar to the one that Callahan addressed could be turned into graph- did not solve, i.e., that of producing a slice that is an executable reachability problems in a fashion similar to the technique used in projection of the original program. The reason has to do with mul- the Cooper-Kennedy paper—and then solved using algorithms very tiple calls to the same procedure: in general, a slice may include similar to the Horwitz-Reps-Binkley interprocedural-slicing algo- more than one such call, and at each, a different subset of the pro- rithm. However, even though the three papers were presented in cedure’s parameters may be in the slice. An extended slicing al- the same hour and a half session at PLDI 88, the act of combining gorithm that addresses this parameter-mismatch problem was later their techniques did not occur for another six years. given by Binkley [7]. The PLDI 88 paper was couched in terms of a very simple pro- Context-Free-Language Reachability gramming language. However, one can think of SDGs as a class The PLDI 88 paper pointed out a correspondence between the call of program representations: to represent programs in different pro- structure of a program and a context-free grammar, and between gramming languages, one uses different variants of PDGs contain- the intraprocedural transitive dependences among a PDG’s param- ing nodes and edges that capture the features and constructs of the eter nodes and the dependences among attributes in an attribute language. The issue of how to create appropriate PDGs/SDGs is grammar [25]. Our paper exploited this correspondence to compute really orthogonal to the issue of how to slice them. There has been summary edges that were added to the SDG at call sites to capture considerable work on how to build dependence graphs for the fea- certain transitive dependences. The transitive dependences of inter- tures and constructs found in real-world programming languages, est are very much like the transitive dependences captured by the characteristic graphs of an attribute grammar’s nonterminals; the algorithm for identifying summary edges was inspired by the first 20 Years of the ACM/SIGPLAN Conference on Programming Language Design and Implementation (1979-1999): A Selection, 2003. two passes of the algorithm for creating the “TDS graphs” that are Copyright 2003 ACM 1-58113-623-4 ...$5.00. used to define the class of ordered attribute grammars [24]. This
  • 2. yields a slicing algorithm that is quartic (i.e., ) in a certain ¨¦¤¢  § ¥ £¡ orated on in a sequence of papers that showed the utility of the size parameter of the problem. approach for both exhaustive and demand program-analysis prob- Given what we have learned in the last fifteen years, if we were to lems [23, 41, 21, 22]. These algorithms all have cubic worst-case write the paper today, we would describe the work somewhat differ- running time (and use quadratic space), although for some interest- ently: in addition to describing the problem as a context-sensitive ing special cases, such as gen-kill dataflow-analysis problems, they analysis, we would say that the algorithm for identifying summary run in linear time and use linear space. edges was a tabulation algorithm (or a dynamic-programming al- Although the authors became aware of the connection to the gorithm); we might explain how interprocedural slicing can be for- more general concept of CFL-reachability sometime in the fall of mulated in terms of a simple logic program, along the lines of [35]; 1994, of the papers from this period, only [36] mentions CFL- and we would explain how the interprocedural-slicing problem is reachability explicitly and references Yannakakis’s paper [51]. an example of the following kind of generalized graph-reachability Sagiv, Reps, and Horwitz used similar ideas—but went beyond problem in which labels on the edges of the graph are used to filter just CFL-reachability—to give more powerful, but still cubic-time, out paths that are not of interest: interprocedural dataflow-analysis algorithms [44]. Among other benefits, this work showed how to obtain precise jump functions for A path from vertex to vertex only counts as a © certain classes of interprocedural constant-propagation problems, “valid connection” between and if the word spelled thereby improving on those developed by Callahan et al. in their out by (i.e., the concatenation, in order, of the labels © CC 86 paper [9]. on the edges of ) is in a certain language. © The CFL-reachability viewpoint has also yielded results on inherent computational limitations related to slicing and other When the filter language is a context-free language, this is called program-analysis problems [37, 39, 33]. Other work that has CFL-reachability, a concept originated by Yannakakis in 1990 [51]. adopted the CFL-reachability model has addressed such topics as CFL-reachability problems can be solved in time cubic in the num- program chopping [42], type checking [34], model checking [3, 5], ber of nodes in the graph (and, in general, no algorithm with a and bug detection [14]. better running time is known). For a survey of ways in which CFL- reachability applies to program-analysis problems, see [38]. (A slight clash in terminology exists. In formal-language theory, REFERENCES the “context-sensitive languages” are a strictly more powerful for- [1] H. Agrawal. On slicing programs with jump statements. In malism than the context-free languages. Unfortunately, the prin- Conf. on Prog. Lang. Design and Impl., pages 302–312, ciple that context-free-language reachability captures an essential 1994. aspect of context-sensitive analysis was fully articulated [38] only [2] T. Ball and S. Horwitz. Slicing programs with arbitrary after the term “context-sensitive analysis” had been adopted by the control-flow. In Int. Workshop on Automated and programming-languages community [16, 49].) Algorithmic Debugging, pages 206–222, 1993. In the case of interprocedural slicing (and in many other context- [3] T. Ball and S.K. Rajamani. Bebop: A path-sensitive sensitive program-analysis problems) the filter language is a lan- interprocedural dataflow engine. In Workshop on Prog. guage of matched parentheses (also called a Dyck language). In Analysis for Softw. Tools and Eng., New York, NY, June essence, the PLDI 88 paper used a language of partially balanced 2001. ACM Press. parentheses to exclude from consideration paths in which calls and [4] U. Bannerjee. Speedup of Ordinary Programs. PhD thesis, returns are mismatched. The parentheses are defined as follows Dept. of Comp. Sci., Univ. of Illinois, Urbana, IL, October [23]: Let each call-site node in SDG be given a unique index 1979. from 1 to TotalCallSites, where TotalCallSites is the total number [5] M. Benedikt, P. Godefroid, and T. Reps. Model checking of of call sites in the program. For each call site , label the outgoing unrestricted hierarchical state machines. In ICALP ’01, 2001. parameter-in edges and the incoming parameter-out edges with the [6] D. Binkley. Multi-Procedure Program Integration. PhD symbols “ ” and “ ”, respectively; label the outgoing call edge ¡ § thesis, Comp. Sci. Dept., Univ. of Wisconsin, Madison, WI, with “ ”. Label all other edges in with the symbol . ¡ August 1991. Tech. Rep. TR-1038. Dyck languages had been used in earlier work on interprocedu- [7] D. Binkley. Precise executable interprocedural slices. Let. on ral dataflow analysis by Sharir and Pnueli to specify that the con- Prog. Lang. and Syst., 2:31–45, 1993. tributions of certain kinds of infeasible execution paths should be [8] D. Callahan. The program summary graph and flow-sensitive filtered out [45]; however, the dataflow-analysis algorithms given interprocedural data flow analysis. In Conf. on Prog. Lang. by Sharir and Pnueli are not based on graph reachability. Design and Impl., pages 47–56, New York, NY, 1988. ACM As mentioned above, the algorithm given in the PLDI 88 paper is Press. of quartic time complexity. However, Dyck languages are context- [9] D. Callahan, K.D. Cooper, K. Kennedy, and L. Torczon. free, which means that Yannakakis’s result applies. Although Yan- Interprocedural constant propagation. In Symp. on Comp. nakakis’s work means that all CFL-reachability problems can be Construct., pages 152–161, 1986. solved in time cubic in the number of graph nodes, one can some- [10] D.R. Chase, M. Wegman, and F. Zadeck. Analysis of times do asymptotically better than this by taking advantage of the pointers and structures. In Conf. on Prog. Lang. Design and structure of the graph that arises in a particular subclass of prob- Impl., pages 296–310, New York, NY, 1990. ACM Press. lems. For instance, an improved algorithm for interprocedural slic- [11] J.-D. Choi and J. Ferrante. Static slicing in the presence of ing is described in [23]; this algorithm is cubic in a certain size goto statements. Trans. on Prog. Lang. and Syst., parameter, but this parameter is usually smaller than the size of the 16(4):1096–1113, 1994. SDG’s node set. [12] K.D. Cooper and K. Kennedy. Interprocedural side-effect Dyck-language reachability was shown by Reps, Sagiv, and Hor- analysis in linear time. In Conf. on Prog. Lang. Design and witz to provide algorithms for a wide variety of interprocedural Impl., pages 57–66, New York, NY, 1988. ACM Press. program-analysis problems [43], including the one that was ad- [13] P. Cousot and R. Cousot. Static determination of dynamic dressed in Callahan’s PLDI 88 paper [8]. These ideas were elab- properties of recursive procedures. In E.J. Neuhold, editor,
  • 3. Formal Descriptions of Programming Concepts, (IFIP WG [33] G. Ramalingam. Context-sensitive synchronization-sensitive 2.2, St. Andrews, Canada, August 1977), pages 237–277. analysis is undecidable. Trans. on Prog. Lang. and Syst., North-Holland, 1978. 22(2):416–430, 2000. [14] M. Das, S. Lerner, and M. Seigle. ESP: Path-sensitive [34] J. Rehof and M. F¨ hndrich. Type-base flow analysis: From a program verification in polynomial time. In Conf. on Prog. polymorphic subtyping to CFL-reachability. In Symp. on Lang. Design and Impl., pages 57–68, New York, NY, 2002. Princ. of Prog. Lang., pages 54–66, New York, NY, 2001. ACM Press. ACM Press. [15] M.B. Dwyer, J.C. Corbett, J. Hatcliff, S. Sokolowski, and [35] T. Reps. Demand interprocedural program analysis using H. Zheng. Slicing multi-threaded Java programs: A case logic databases. In R. Ramakrishnan, editor, Applications of study. Tech. Rep. 99-7, Dept. of Comp. and Inf. Sci., Kansas Logic Databases. Kluwer Academic Publishers, 1994. State Univ., Manhattan, KS, February 1999. [36] T. Reps. Shape analysis as a generalized path problem. In [16] M. Emami, R. Ghiya, and L. Hendren. Context-sensitive Symp. on Part. Eval. and Semantics-Based Prog. Manip., interprocedural points-to analysis in the presence of function pages 1–11, New York, NY, June 1995. ACM Press. pointers. In Conf. on Prog. Lang. Design and Impl., New [37] T. Reps. On the sequential nature of interprocedural York, NY, 1994. ACM Press. program-analysis problems. Acta Inf., 33:739–757, 1996. [17] J. Ferrante, K. Ottenstein, and J. Warren. The program [38] T. Reps. Program analysis via graph reachability. Inf. and dependence graph and its use in optimization. Trans. on Softw. Tech., 40(11-12):701–726, November 1998. Prog. Lang. and Syst., 3(9):319–349, 1987. [39] T. Reps. Undecidability of context-sensitive data-dependence [18] G. Goff, K. Kennedy, and C.-W. Tseng. Practical dependence analysis. Trans. on Prog. Lang. and Syst., 22(1):162–186, testing. In Conf. on Prog. Lang. Design and Impl., pages January 2000. 15–29, New York, NY, 1991. ACM Press. [40] T. Reps, S. Horwitz, and D. Binkley. U.S. Patent Number [19] S. Horwitz, P. Pfeiffer, and T. Reps. Dependence analysis for 5,161,216, Interprocedural slicing of computer programs pointer variables. In Conf. on Prog. Lang. Design and Impl., using dependence graphs, November 1992. pages 28–40, New York, NY, 1989. ACM Press. [41] T. Reps, S. Horwitz, and M. Sagiv. Precise interprocedural [20] S. Horwitz, T. Reps, and D. Binkley. Interprocedural slicing dataflow analysis via graph reachability. In Symp. on Princ. using dependence graphs. Trans. on Prog. Lang. and Syst., of Prog. Lang., pages 49–61, New York, NY, 1995. ACM 12(1):26–60, January 1990. Press. [21] S. Horwitz, T. Reps, and M. Sagiv. Demand interprocedural [42] T. Reps and G. Rosay. Precise interprocedural chopping. In dataflow analysis. In Symp. on the Found. of Softw. Eng., Symp. on the Found. of Softw. Eng., New York, NY, October pages 104–115, New York, NY, October 1995. ACM Press. 1995. ACM Press. [22] S. Horwitz, T. Reps, and M. Sagiv. Demand interprocedural [43] T. Reps, M. Sagiv, and S. Horwitz. Interprocedural dataflow dataflow analysis. report TR-1283, Comp. Sci. Dept., Univ. analysis via graph reachability. Tech. Rep. TR 94-14, of Wisconsin, August 1995. Available at Datalogisk Institut, Univ. of Copenhagen, 1994. Available at “http://www.cs.wisc.edu/wpis/papers/tr1283r.ps”. “http://www.cs.wisc.edu/wpis/papers/diku-tr94-14.ps”. [23] S. Horwitz, T. Reps, M. Sagiv, and G. Rosay. Speeding up [44] M. Sagiv, T. Reps, and S. Horwitz. Precise interprocedural slicing. In Symp. on the Found. of Softw. Eng., pages 11–20, dataflow analysis with applications to constant propagation. New York, NY, December 1994. ACM Press. Theor. Comp. Sci., 167:131–170, 1996. [24] U. Kastens. Ordered attribute grammars. Acta Inf., [45] M. Sharir and A. Pnueli. Two approaches to interprocedural 13(3):229–256, 1980. data flow analysis. In S.S. Muchnick and N.D. Jones, editors, [25] D.E. Knuth. Semantics of context-free languages. Math. Syst. Program Flow Analysis: Theory and Applications, chapter 7, Theory, 2:127–145, 1968. pages 189–234. Prentice-Hall, Englewood Cliffs, NJ, 1981. [26] J. Krinke. Static slicing of threaded programs. In Workshop [46] S. Sinha, M. Harrold, and G. Rothermel. on Prog. Analysis for Softw. Tools and Eng., June 1998. System-dependence-graph-based slicing of programs with [27] S. Kumar and S. Horwitz. Better slicing of programs with arbitrary control flow. In Int. Conf. on Softw. Eng., pages jumps and switches. In Colloq on Formal Approaches in 432–441, Wash., DC, 1999. IEEE Comp. Soc. Softw. Eng., pages 96–112, 2002. [47] M. Weiser. Program slicing. In Int. Conf. on Softw. Eng., [28] J.R. Larus and P.N. Hilfinger. Detecting conflicts between pages 439–449, Wash., DC, 1981. IEEE Comp. Soc. structure accesses. In Conf. on Prog. Lang. Design and Impl., [48] M. Weiser. Program slicing. Trans. on Softw. Eng., pages 21–34, New York, NY, 1988. ACM Press. SE-10(4):352–357, July 1984. [29] D.E. Maydan, J.L. Hennessy, and M.S. Lam. Efficient and [49] R.P. Wilson and M.S. Lam. Efficient context-sensitive exact data dependence analysis. In Conf. on Prog. Lang. pointer analysis for C programs. In Conf. on Prog. Lang. Design and Impl., pages 1–14, New York, NY, 1991. ACM Design and Impl., pages 1–12, New York, NY, 1995. ACM Press. Press. [30] M. Nanda and S. Ramesh. Slicing concurrent programs. In [50] M.J. Wolfe. Optimizing Supercompilers for Supercomputers. Symp. on Softw. Testing and Analysis, August 2000. PhD thesis, Dept. of Comp. Sci., Univ. of Illinois, Urbana, [31] K.J. Ottenstein and L.M. Ottenstein. The program IL, October 1982. dependence graph in a software development environment. [51] M. Yannakakis. Graph-theoretic methods in database theory. In Softw. Eng. Symp. on Practical Softw. Dev. Environments, In Symp. on Princ. of Database Syst., pages 230–242, 1990. pages 177–184, New York, NY, 1984. ACM Press. [32] W. Pugh and D. Wonnacott. Eliminating false data dependences using the Omega test. In Conf. on Prog. Lang. Design and Impl., pages 140–151, New York, NY, 1992. ACM Press.