The program dependence graph and its use in optimization
ACM Transactions on Programming Languages and Systems (TOPLAS)
Introduction to the ISO specification language LOTOS
Computer Networks and ISDN Systems - Special Issue: Protocol Specification and Testing
Static analysis of low-level synchronization
PADD '88 Proceedings of the 1988 ACM SIGPLAN and SIGOPS workshop on Parallel and distributed debugging
Design and validation of computer protocols
Design and validation of computer protocols
A calculus of mobile processes, I
Information and Computation
Computation of interprocedural control dependence
Proceedings of the 1998 ACM SIGSOFT international symposium on Software testing and analysis
Static slicing of threaded programs
Proceedings of the 1998 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
A conservative data flow algorithm for detecting all pairs of statements that may happen in parallel
SIGSOFT '98/FSE-6 Proceedings of the 6th ACM SIGSOFT international symposium on Foundations of software engineering
Proceedings of the 2000 ACM SIGSOFT international symposium on Software testing and analysis
Communicating sequential processes
Communications of the ACM - Special 25th Anniversary Issue
The Theory and Practice of Concurrency
The Theory and Practice of Concurrency
Fast Slicing of Concurrent Programs
HiPC '99 Proceedings of the 6th International Conference on High Performance Computing
TACAS '95 Proceedings of the First International Workshop on Tools and Algorithms for Construction and Analysis of Systems
Slicing Concurrent Programs - A Graph-Theoretical Approach
AADEBUG '93 Proceedings of the First International Workshop on Automated and Algorithmic Debugging
Reliability analysis of CSP specifications using Petri nets and Markov processes
HICSS '95 Proceedings of the 28th Hawaii International Conference on System Sciences
Slicing Aspect-Oriented Software
IWPC '02 Proceedings of the 10th International Workshop on Program Comprehension
Context-sensitive slicing of concurrent programs
Proceedings of the 9th European software engineering conference held jointly with 11th ACM SIGSOFT international symposium on Foundations of software engineering
ProB: an automated analysis toolset for the B method
International Journal on Software Tools for Technology Transfer (STTT)
SOC: a slicer for CSP specifications
Proceedings of the 2009 ACM SIGPLAN workshop on Partial evaluation and program manipulation
Probing the Depths of CSP-M: A New fdr-Compliant Validation Tool
ICFEM '08 Proceedings of the 10th International Conference on Formal Methods and Software Engineering
The MEB and CEB Static Analysis for CSP Specifications
Logic-Based Program Synthesis and Transformation
Combining CSP and b for specification and property verification
FM'05 Proceedings of the 2005 international conference on Formal Methods
IEEE Transactions on Software Engineering
Hi-index | 0.00 |
Static analysis of concurrent languages is a complex task due to the non-deterministic execution of processes. If the concurrent language being studied allows process synchronization, then the analyses are even more complex (and thus expensive), e.g., due to the phenomenon of deadlock. In this work we introduce a static analysis technique based on program slicing for concurrent and explicitly synchronized languages in general, and CSP in particular. Concretely, given a particular point in a specification, our technique allows us to know what parts of the specification must necessarily be executed before this point, and what parts of the specification could be executed before it. Our technique is based on a new data structure that extends the Synchronized Control Flow Graph (SCFG). We show that this new data structure improves the SCFG by taking into account the context in which processes are called and, thus, it makes the slicing process more precise. The technique has been implemented and tested with real specifications, producing good results. After formally defining our technique, we describe our tool, its architecture, its main applications and the results obtained from several experiments conducted in order to measure the performance of the tool.