Abstract
This work presents a static analysis technique based on program slicing for CSP specifications. 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. Our technique is based on a new data structure which 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, makes the slicing process more precise.
This work has been partially supported by the EU (FEDER and FP7 research project 214158 DEPLOY), by DAAD (PPP D/06/12830); by the Spanish MEC/MICINN under grants TIN2005-09207-C03-02, TIN2008-06622-C03-02, and Acción Integrada HA2006-0008; by the Generalitat Valenciana under grant GVPRE/2008/001; and by the Programa de Apoyo a la Investigación y Desarrollo de la Universidad Politécnica de Valencia.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Butler, M., Leuschel, M.: Combining CSP and B for specification and property verification. In: Fitzgerald, J.S., Hayes, I.J., Tarlecki, A. (eds.) FM 2005. LNCS, vol. 3582, pp. 221–236. Springer, Heidelberg (2005)
Callahan, D., Sublok, J.: Static analysis of low-level synchronization. In: Proceedings of the 1988 ACM SIGPLAN and SIGOPS workshop on Parallel and Distributed Debugging (PADD 1988), New York, NY, USA, pp. 100–111 (1988)
Cheng, J.: Slicing concurrent programs - a graph-theoretical approach. In: Fritzson, P.A. (ed.) AADEBUG 1993. LNCS, vol. 749, pp. 223–240. Springer, Heidelberg (1993)
Ferrante, J., Ottenstein, K.J., Warren, J.D.: The program dependence graph and its use in optimization. ACM Transactions on Programming Languages and Systems 9(3), 319–349 (1987)
Harrold, M.J., Rothermel, G., Sinha, S.: Computation of interprocedural control dependence. In: International Symposium on Software Testing and Analysis, pp. 11–20 (1998)
Hoare, C.A.R.: Communicating sequential processes. Communications ACM 26(1), 100–106 (1983)
Kavi, K.M., Sheldon, F.T., Shirazi, B.: Reliability analysis of CSP specifications using petri nets and markov processes. In: Proceedings 28th Annual Hawaii International Conference on System Sciences. Software Technology, January 3-6, Wailea, HI, vol. 2, pp. 516–524 (1995)
Krinke, J.: Static slicing of threaded programs. In: Workshop on Program Analysis For Software Tools and Engineering, pp. 35–42 (1998)
Krinke, J.: Context-sensitive slicing of concurrent programs. ACM SIGSOFT Software Engineering Notes 28(5) (2003)
Ladkin, P., Simons, B.: Static deadlock analysis for csp-type communications. In: Responsive Computer Systems, ch. 5. Kluwer Academic Publishers, Dordrecht (1995)
Leuschel, M., Butler, M.: ProB: an automated analysis toolset for the B method. Journal of Software Tools for Technology Transfer 10(2), 185–203 (2008)
Leuschel, M., Fontaine, M.: Probing the depths of CSP-M: A new FDR-compliant validation tool. In: Liu, S., Maibaum, T., Araki, K. (eds.) ICFEM 2008. LNCS, vol. 5256, pp. 278–297. Springer, Heidelberg (2008)
Nanda, M.G., Ramesh, S.: Slicing concurrent programs. In: Proceedings of the 2000 ACM SIGSOFT International Symposium on Software Testing and Analysis, New York, NY, USA, pp. 180–190 (2000)
Naumovich, G., Avrunin, G.S.: A conservative data flow algorithm for detecting all pairs of statements that happen in parallel. SIGSOFT Software Engineering Notes 23(6), 24–34 (1998)
Roscoe, A.W., Gardiner, P.H.B., Goldsmith, M., Hulance, J.R., Jackson, D.M., Scattergood, J.B.: Hierarchical compression for model-checking CSP or how to check 10\(^{\mbox{20}}\) dining philosophers for deadlock. In: Proceedings of the First International Workshop Tools and Algorithms for Construction and Analysis of Systems, pp. 133–152 (1995)
Tip, F.: A survey of program slicing techniques. Journal of Programming Languages 3, 121–189 (1995)
Weiser, M.D.: Program slicing. IEEE Transactions on Software Engineering 10(4), 352–357 (1984)
Zhao, J., Cheng, J., Ushijima, K.: Slicing concurrent logic programs. In: Proceedings of the 2nd Fuji International Workshop on Functional and Logic Programming, pp. 143–162 (1997)
Zhao, J.: Slicing aspect-oriented software. In: Proceedings of the 10th IEEE International Workshop on Programming Comprehension, pp. 251–260 (2002)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2009 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Leuschel, M., Llorens, M., Oliver, J., Silva, J., Tamarit, S. (2009). The MEB and CEB Static Analysis for CSP Specifications. In: Hanus, M. (eds) Logic-Based Program Synthesis and Transformation. LOPSTR 2008. Lecture Notes in Computer Science, vol 5438. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-00515-2_8
Download citation
DOI: https://doi.org/10.1007/978-3-642-00515-2_8
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-00514-5
Online ISBN: 978-3-642-00515-2
eBook Packages: Computer ScienceComputer Science (R0)