The program dependence graph and its use in optimization
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
Interprocedural slicing using dependence graphs
ACM Transactions on Programming Languages and Systems (TOPLAS)
IEEE Transactions on Software Engineering
Dependence-based program analysis
PLDI '93 Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation
A framework for generalized control dependence
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
Static slicing of threaded programs
Proceedings of the 1998 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Advanced compiler design and implementation
Advanced compiler design and implementation
Characterizations of Reducible Flow Graphs
Journal of the ACM (JACM)
Model checking
Bandera: extracting finite-state models from Java source code
Proceedings of the 22nd international conference on Software engineering
Communication and Concurrency
Slicing Programs with Arbitrary Control-flow
AADEBUG '93 Proceedings of the First International Workshop on Automated and Algorithmic Debugging
Slicing java programs that throw and catch exceptions
Proceedings of the 2003 ACM SIGPLAN workshop on Partial evaluation and semantics-based program manipulation
The Relationship of Slicing and Debugging to Program Understanding
IWPC '99 Proceedings of the 7th International Workshop on Program Comprehension
A formal, language-independent, and compositional approach to interprocedural control dependence analysis
A new foundation for control-dependence and slicing for modern program structures
ESOP'05 Proceedings of the 14th European conference on Programming Languages and Systems
Slicing for modern program structures: a theory for eliminating irrelevant loops
Information Processing Letters
Secure slices of insecure programs
Proceedings of the 2008 ACM symposium on Information, computer and communications security
Dependency Analysis for Control Flow Cycles in Reactive Communicating Processes
SPIN '08 Proceedings of the 15th international workshop on Model Checking Software
Formalizing a Framework for Dynamic Slicing of Program Dependence Graphs in Isabelle/HOL
TPHOLs '08 Proceedings of the 21st International Conference on Theorem Proving in Higher Order Logics
ICFEM '08 Proceedings of the 10th International Conference on Formal Methods and Software Engineering
Automated test data generation for aspect-oriented programs
Proceedings of the 8th ACM international conference on Aspect-oriented software development
On temporal path conditions in dependence graphs
Automated Software Engineering
Control Dependence for Extended Finite State Machines
FASE '09 Proceedings of the 12th International Conference on Fundamental Approaches to Software Engineering: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
On PDG-based noninterference and its modular proof
Proceedings of the ACM SIGPLAN Fourth Workshop on Programming Languages and Analysis for Security
AIC'09 Proceedings of the 9th WSEAS international conference on Applied informatics and communications
Discovering Coordination Patterns
Electronic Notes in Theoretical Computer Science (ENTCS)
A trajectory-based strict semantics for program slicing
Theoretical Computer Science
Slicing for architectural analysis
Science of Computer Programming
An alternative characterization of weak order dependence
Information Processing Letters
Slicing of UML models using model transformations
MODELS'10 Proceedings of the 13th international conference on Model driven engineering languages and systems: Part II
Specification coverage for testing in circus
UTP'10 Proceedings of the Third international conference on Unifying theories of programming
Identifying properties of UML state machine diagrams that affect data and control dependence
Proceedings of the 2011 ACM Symposium on Applied Computing
A unifying theory of control dependence and its application to arbitrary program structures
Theoretical Computer Science
Making sense of healthcare benefits
Proceedings of the 34th International Conference on Software Engineering
State-based model slicing: A survey
ACM Computing Surveys (CSUR)
Hi-index | 0.00 |
The notion of control dependence underlies many program analysis and transformation techniques. Despite being widely used, existing definitions and approaches to calculating control dependence are difficult to apply directly to modern program structures because these make substantial use of exception processing and increasingly support reactive systems designed to run indefinitely. This article revisits foundational issues surrounding control dependence, and develops definitions and algorithms for computing several variations of control dependence that can be directly applied to modern program structures. To provide a foundation for slicing reactive systems, the article proposes a notion of slicing correctness based on weak bisimulation, and proves that some of these new definitions of control dependence generate slices that conform to this notion of correctness. This new framework of control dependence definitions, with corresponding correctness results, is even able to support programs with irreducible control flow graphs. Finally, a variety of properties show that the new definitions conservatively extend classic definitions. These new definitions and algorithms form the basis of the Indus Java slicer, a publicly available program slicer that has been implemented for full Java.