ComputingComputer EngineeringComputer ScienceCompilersComputer ArchitectureProgramming LanguagesControl-flow AnalysisData-flow AnalysisData Dependence AnalysisDependence AnalysisDependence CheckingDynamic Program AnalysisMemory Footprint ReductionProgram Dependence AnalysisProgram Dependence GraphsProgram Slicing
Traditional dynamic program slicing techniques are code-centric, meaning dependences are introduced between executed statement instances, which gives rise to various problems such as space requirement is decided by execution length; dependence graphs are highly redundant so that inspecting them is labor intensive. In this paper, we propose a data-centric dynamic slicing technique, in which dependences are introduced between memory locations. Doing so, the space complexity is bounded by memory footprint instead of execution length. Moreover, presenting dependences between memory locations is often more desirable for human inspection during debugging as redundant dependences are suppressed. Our evaluation shows that the proposed technique supersedes traditional dynamic slicing techniques in terms of effectiveness and efficiency.
18
Graph-Based Algorithms for Boolean Function Manipulation
Bryant · IEEE Transactions on Computers · 1986 · 8.9K citations · Full text
Nicholas Nethercote, Julian Seward · 2007 · 2.3K citations
Hiralal Agrawal, J.R. Horgan · 1990 · 879 citations · Full text
Bogdan Korel · Information Processing Letters · 1988 · 765 citations