Slicing Techniques Applied to Concurrent Languages

Salvador Tamarit Muñoz · 2011

Program slicing is a well-known technique in imperative programming for extracting those statements of a program that may affect a given program point. This thesis introduces new slicing techniques for concurrent languages. These languages are CSP and Petri Nets. The Communicating Sequential Processes (CSP) language allows us to specify complex systems with multiple interacting processes. The study and transformation of such systems often implies different analyses (e.g., deadlock analysis, reliability analysis, refinement checking, etc.) Here, a static slicing based technique to slice CSP specifications is described. Given a particular event in a CSP specification, our technique allows us to know what parts of the specification must necessarily be executed before this event, and what parts of the specification could be executed before it in some execution. This technique can be very useful to debug, understand, maintain and reuse specifications; but also as a preprocessing stage of other analyses and/or transformations in order to reduce the complexity of the CSP specification. Our technique is based on a new data structure which extends the synchronized CFG. We show that this new data structure improves the synchronized CFG by taking into account the context in which processes are called and, thus, makes the slicing process more precise. Furthermore, we

Read the paper · More papers on PaperTik