Dynamic forward slicing for object-oriented programs