Slicing has been shown to be a useful program abstraction technique, with applications at many points in the software development life-cycle, particularly as a tool to assist software evolution. Unfortunately, slicing algorithms scale up rather poorly, diminishing the applicability of slicing in practice. In applications where many slices are required from a largely unchanging system, incremental
... [Show full abstract] approaches to the construction of dependence information can be used, ensuring that slices are constructed speedily. However, for some applications, the only way to compute slices within eective time constraints will be to trade precision for speed. This approach has been successfully applied to a number of other computationally expensive source code analysis techniques, most notably points-to analysis. This paper introduces a theory for trading precision for speed in slicing based upon `blobbing together' several individual Control Flow Graph nodes. The theory de- nes the properties of co...