Program slicing is an important operation that can be used as the basis for programming tools that help programmers understand,
debug, maintain, and test their code. This paper extends previous work on program slicing by providing a new definition of
“correct” slices, by introducing a representation for C-style switch statements, and by defining a new way to compute control
dependences and to slice a programdependence graph so as to compute more precise slices of programs that include jumps and
switches. Experimental results show that the new approach to slicing can sometimes lead to a significant improvement in slice
precision.