The program dependence graph and its use in optimization
ACM Transactions on Programming Languages and Systems (TOPLAS)
The program summary graph and flow-sensitive interprocedual data flow analysis
PLDI '88 Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation
Interprocedural side-effect analysis in linear time
PLDI '88 Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation
Integrating non-intering versions of programs
POPL '88 Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
On Live-Dead Analysis for Global Data Flow Problems
Journal of the ACM (JACM)
A precise inter-procedural data flow algorithm
POPL '81 Proceedings of the 8th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
An efficient way to find the side effects of procedure calls and the aliases of variables
POPL '79 Proceedings of the 6th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Compiler Construction
The program dependence graph in a software development environment
SDE 1 Proceedings of the first ACM SIGSOFT/SIGPLAN software engineering symposium on Practical software development environments
The program summary graph and flow-sensitive interprocedual data flow analysis
PLDI '88 Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation
Integrating noninterfering versions of programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Dependence analysis for pointer variables
PLDI '89 Proceedings of the ACM SIGPLAN 1989 Conference on Programming language design and implementation
A practical approach to semantic configuration management
TAV3 Proceedings of the ACM SIGSOFT '89 third symposium on Software testing, analysis, and verification
Interprocedural slicing using dependence graphs
ACM Transactions on Programming Languages and Systems (TOPLAS)
PLDI '90 Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation
Pointer-induced aliasing: a problem classification
POPL '91 Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Approximate Reasoning About the Semantic Effects of Program Changes
IEEE Transactions on Software Engineering
Interprocedural Def-Use associations in C programs
TAV4 Proceedings of the symposium on Testing, analysis, and verification
Generalized dominators and post-dominators
POPL '92 Proceedings of the 19th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Interprocedural modification side effect analysis with pointer aliasing
PLDI '93 Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation
An overview of debugging tools
ACM SIGSOFT Software Engineering Notes
Interconvertbility of set constraints and context-free language reachability
PEPM '97 Proceedings of the 1997 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Automatically closing open reactive programs
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
SAC '00 Proceedings of the 2000 ACM symposium on Applied computing - Volume 2
Fault localization using execution traces
ACM-SE 30 Proceedings of the 30th annual Southeast regional conference
On the relationship between model-based debugging and program slicing
Artificial Intelligence
A State-of-the-Art Survey on Software Merging
IEEE Transactions on Software Engineering
Equivalence of conservative, free, linear program schemas is decidable
Theoretical Computer Science
Proceedings of the 2002 IEEE/ACM international conference on Computer-aided design
Structural Properties of Post-Dominator Trees
ASWEC '97 Proceedings of the Australian Software Engineering Conference
Flow Analysis to Detect Blocked Statements
ICSM '01 Proceedings of the IEEE International Conference on Software Maintenance (ICSM'01)
Syntax-Directed Amorphous Slicing
Automated Software Engineering
Proceedings of the 5th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Online Cycle Detection and Difference Propagation: Applications to Pointer Analysis
Software Quality Control
Analysis and Visualization of Predicate Dependence on Formal Parameters and Global Variables
IEEE Transactions on Software Engineering
A brief survey of program slicing
ACM SIGSOFT Software Engineering Notes
A model for slicing JAVA programs hierarchically
Journal of Computer Science and Technology
Analyzing feature implementation by visual exploration of architecturally-embedded call-graphs
Proceedings of the 2006 international workshop on Dynamic systems analysis
Theoretical foundations of dynamic program slicing
Theoretical Computer Science
An empirical study of static program slice size
ACM Transactions on Software Engineering and Methodology (TOSEM)
On bytecode slicing and aspectJ interferences
Proceedings of the 6th workshop on Foundations of aspect-oriented languages
Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation
Efficient online detection of dynamic control dependence
Proceedings of the 2007 international symposium on Software testing and analysis
The trace partitioning abstract domain
ACM Transactions on Programming Languages and Systems (TOPLAS) - Special Issue ESOP'05
Empirical study of optimization techniques for massive slicing
ACM Transactions on Programming Languages and Systems (TOPLAS)
Subcubic algorithms for recursive state machines
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Causality interfaces for actor networks
ACM Transactions on Embedded Computing Systems (TECS)
Detecting buffer overflow via automatic test input data generation
Computers and Operations Research
Secure slices of insecure programs
Proceedings of the 2008 ACM symposium on Information, computer and communications security
Locating dependence structures using search-based slicing
Information and Software Technology
Projecting code changes onto execution traces to support localization of recently introduced bugs
Proceedings of the 2009 ACM symposium on Applied Computing
TAJ: effective taint analysis of web applications
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation
Proceedings of the 7th annual IEEE/ACM International Symposium on Code Generation and Optimization
Verification Techniques for System-Level Design
Verification Techniques for System-Level Design
Modular string-sensitive permission analysis with demand-driven precision
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
Api hyperlinking via structural overlap
Proceedings of the the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Increasing the Scope and Resolution of Interprocedural Static Single Assignment
SAS '09 Proceedings of the 16th International Symposium on Static Analysis
A hybrid analysis framework for detecting web application vulnerabilities
IWSESS '09 Proceedings of the 2009 ICSE Workshop on Software Engineering for Secure Systems
Discovering Coordination Patterns
Electronic Notes in Theoretical Computer Science (ENTCS)
Efficient Model Checking of Hardware Using Conditioned Slicing
Electronic Notes in Theoretical Computer Science (ENTCS)
SherLog: error diagnosis by connecting clues from run-time logs
Proceedings of the fifteenth edition of ASPLOS on Architectural support for programming languages and operating systems
A trajectory-based strict semantics for program slicing
Theoretical Computer Science
New developments in WCET analysis
Program analysis and compilation, theory and practice
Proceedings of the 2010 ICSE Workshop on Software Engineering for Secure Systems
Strict control dependence and its effect on dynamic information flow analyses
Proceedings of the 19th international symposium on Software testing and analysis
Slicing for architectural analysis
Science of Computer Programming
A compiler framework for the reduction of worst-case execution times
Real-Time Systems
Language-based replay via data flow cut
Proceedings of the eighteenth ACM SIGSOFT international symposium on Foundations of software engineering
Verification of software via integration of design and implementation
IPDPS'06 Proceedings of the 20th international conference on Parallel and distributed processing
Ad hoc synchronization considered harmful
OSDI'10 Proceedings of the 9th USENIX conference on Operating systems design and implementation
Effective false positive filtering for evolving software
Proceedings of the 4th India Software Engineering Conference
Transactions on computational science XI
Source code prioritization using forward slicing for exposing critical elements in a program
Journal of Computer Science and Technology
HAWKEYE: effective discovery of dataflow impediments to parallelization
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
Sprint: speculative prefetching of remote data
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
A unifying theory of control dependence and its application to arbitrary program structures
Theoretical Computer Science
The role of coordination analysis in software integration projects
OTM'11 Proceedings of the 2011th Confederated international conference on On the move to meaningful internet systems
Abstract dependences for alarm diagnosis
APLAS'05 Proceedings of the Third Asian conference on Programming Languages and Systems
Termination analysis with compositional transition invariants
CAV'10 Proceedings of the 22nd international conference on Computer Aided Verification
Automatically preparing safe SQL queries
FC'10 Proceedings of the 14th international conference on Financial Cryptography and Data Security
Static versioning of global state for race condition detection
Ada-Europe'10 Proceedings of the 15th Ada-Europe international conference on Reliable Software Technologies
Ranking function synthesis for bit-vector relations
TACAS'10 Proceedings of the 16th international conference on Tools and Algorithms for the Construction and Analysis of Systems
A vocabulary of program slicing-based techniques
ACM Computing Surveys (CSUR)
Extracting client-side web application code
Proceedings of the 21st international conference on World Wide Web
Survey: A survey on search-based software design
Computer Science Review
Impact analysis for distributed event-based systems
Proceedings of the 6th ACM International Conference on Distributed Event-Based Systems
Automatic partitioning of database applications
Proceedings of the VLDB Endowment
CHEX: statically vetting Android apps for component hijacking vulnerabilities
Proceedings of the 2012 ACM conference on Computer and communications security
Frama-C: a software analysis perspective
SEFM'12 Proceedings of the 10th international conference on Software Engineering and Formal Methods
Enriching Documents with Examples: A Corpus Mining Approach
ACM Transactions on Information Systems (TOIS)
Path-Sensitive backward slicing
SAS'12 Proceedings of the 19th international conference on Static Analysis
Automated diagnosis of software configuration errors
Proceedings of the 2013 International Conference on Software Engineering
ConfDiagnoser: an automated configuration error diagnosis tool for Java software
Proceedings of the 2013 International Conference on Software Engineering
Program slicing to understand software generators
Proceedings of the 5th International Workshop on Feature-Oriented Software Development
Mantis: automatic performance prediction for smartphone applications
USENIX ATC'13 Proceedings of the 2013 USENIX conference on Annual Technical Conference
Recovering C++ Objects From Binaries Using Inter-Procedural Data-Flow Analysis
Proceedings of ACM SIGPLAN on Program Protection and Reverse Engineering Workshop 2014
Behind the scenes in SANTE: a combination of static and dynamic analyses
Automated Software Engineering
Hi-index | 0.00 |
A slice of a program with respect to a program point p and variable x consists of all statements of the program that might affect the value of x at point p. This paper concerns the problem of interprocedural slicing — generating a slice of an entire program, where the slice crosses the boundaries of procedure calls. To solve this problem, we introduce a new kind of graph to represent programs, called a system dependence graph, which extends previous dependence representations to incorporate collections of procedures (with procedure calls) rather than just monolithic programs. Our main result is an algorithm for interprocedural slicing that uses the new representation.The chief difficulty in interprocedural slicing is correctly accounting for the calling context of a called procedure. To handle this problem, system dependence graphs include some data-dependence edges that represent transitive dependencies due to the effects of procedure calls, in addition to the conventional direct-dependence edges. These edges are constructed with the aid of an auxiliary structure that represents calling and parameter-linkage relationships. This structure takes the form of an attribute grammar. The step of computing the required transitive-dependence edges is reduced to the construction of the subordinate characteristic graphs for the grammar's nonterminals.