Advanced Slicing of Sequential and Concurrent Programs