Utilizing the notion of removable blocks to enhance program slicing algorithms