The program dependence graph and its use in optimization
ACM Transactions on Programming Languages and Systems (TOPLAS)
Eliminating go to's while preserving program structure
Journal of the ACM (JACM)
Interprocedural slicing using dependence graphs
PLDI '88 Proceedings of the ACM SIGPLAN 1988 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
The transitive closure of control dependence: the iterated join
ACM Letters on Programming Languages and Systems (LOPLAS)
A framework for generalized control dependence
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
A new Algorithm for slicing unstructured programs
Journal of Software Maintenance: Research and Practice
On the control dependence in the program dependence graph
CSC '88 Proceedings of the 1988 ACM sixteenth annual conference on Computer science
Certification of programs for secure information flow
Communications of the ACM
Interprocedural control dependence
ACM Transactions on Software Engineering and Methodology (TOSEM)
A Calculus of Communicating Systems
A Calculus of Communicating Systems
Conversion of control dependence to data dependence
POPL '83 Proceedings of the 10th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
ICSE '81 Proceedings of the 5th international conference on Software engineering
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
ConSUS: A Scalable Approach to Conditioned Slicing
WCRE '02 Proceedings of the Ninth Working Conference on Reverse Engineering (WCRE'02)
Program slices: formal, psychological, and practical investigations of an automatic program abstraction method
Journal of Systems and Software
Formalizing Executable Dynamic and Forward Slicing
SCAM '04 Proceedings of the Source Code Analysis and Manipulation, Fourth IEEE International Workshop
Minimal Slicing and the Relationships Between Forms of Slicing
SCAM '05 Proceedings of the Fifth IEEE International Workshop on Source Code Analysis and Manipulation
A formal relationship between program slicing and partial evaluation
Formal Aspects of Computing
A formalisation of the relationship between forms of program slicing
Science of Computer Programming - Special issue on source code analysis and manipulation (SCAM 2005)
Theoretical foundations of dynamic program slicing
Theoretical Computer Science
A new foundation for control dependence and slicing for modern program structures
ACM Transactions on Programming Languages and Systems (TOPLAS) - Special Issue ESOP'05
Slicing for modern program structures: a theory for eliminating irrelevant loops
Information Processing Letters
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
Improving slice accuracy by compression of data and control flow paths
Proceedings of the the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
A trajectory-based strict semantics for program slicing
Theoretical Computer Science
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
Hi-index | 5.23 |
There are several similar, but not identical, definitions of control dependence in the literature. These definitions are given in terms of control flow graphs which have had extra restrictions imposed (for example, end-reachability). We define two new generalisations of non-termination insensitive and non-termination sensitive control dependence called weak and strong control-closure. These are defined for all finite directed graphs, not just control flow graphs and are hence allow control dependence to be applied to a wider class of program structures than before. We investigate all previous forms of control dependence in the literature and prove that, for the restricted graphs for which each is defined, vertex sets are closed under each if and only if they are either weakly or strongly control-closed. Low polynomial-time algorithms for producing minimal weakly and strongly control-closed sets over generalised control flow graphs are given. This paper is the first to define an underlying semantics for control dependence: we define two relations between graphs called weak and strong projections, and prove that the graph induced by a set of vertices is a weak/strong projection of the original if and only if the set is weakly/strongly control-closed. Thus, all previous forms of control dependence also satisfy our semantics. Weak and strong projections, therefore, precisely capture the essence of control dependence in our generalisations and all the previous, more restricted forms. More fundamentally, these semantics can be thought of as correctness criteria for future definitions of control dependence.