Program slicing is a technique for program analysis and transformation with many different applications such as program debugging, program specialization, and parallelization. The system dependence graph (SDG) is the most commonly used data structure for program slicing. In this paper, we show that the presence of exception-handling constructs can make the SDG produce incorrect and sometimes even incomplete slices. We showcase the instances of incorrectness and incompleteness and we propose a framework for correctly handling exception-related instructions, which includes representation of all possible exception throwing and catching mechanisms, and a new kind of control dependence: conditional control dependence; which produces more precise slices in the presence of catch statements.
Thu 19 NovDisplayed time zone: Central Time (US & Canada) change
03:00 - 04:20
|Program Slicing with Exception Handling
|MetaCG: Annotated call-graphs to facilitate whole-program analysis
|Data Dependence for Object-Oriented Programs
|Type checking beyond type checkers, via Slice & Run