We present a linear-time algorithm that yields the control structure o
f a program slice, even if the program being sliced is unstructured. F
rom the flow graph of a program, the nodes and arcs that do not belong
to a given slice are systematically deleted, so that the resulting fl
ow graph contains only the predicates and statements of the slice and
preserves the meaning of the original program with respect to the pred
icates and statements of the given slice.