Abstract
CSP is a powerful language for specifying complex concurrent systems. Due to the non-deterministic execution order of processes and to synchronizations, many analyses such as deadlock analysis, reliability analysis, and program slicing try to predict properties of the specification which can guarantee the quality of the final system. These analyses often rely on the use of CSP’s traces. In this work, we introduce the theoretical basis for tracking concurrent and explicitly synchronized computations in process algebras such as CSP. Tracking computations is a difficult task due to the subtleties of the underlying operational semantics which combines concurrency, non-determinism and non-termination. We define an instrumented operational semantics that generates as a side-effect an appropriate data structure (a track) which can be used to track computations. Formal definition of a tracking semantics improves the understanding of the tracking process, but also, it allows to formally prove the correctness of the computed tracks.
This work has been partially supported by the Spanish Ministerio de Ciencia e Innovación under grant TIN2008-06622-C03-02, by the Generalitat Valenciana under grant ACOMP/2009/017, and by the Universidad Politécnica de Valencia (Programs PAID-05-08 and PAID-06-08). Salvador Tamarit was partially supported by the Spanish MICINN under FPI grant BES-2009-015019.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Brassel, B., Hanus, M., Huch, F., Vidal, G.: A Semantics for Tracing Declarative Multi-paradigm Programs. In: Moggi, E., Warren, D.S. (eds.) 6th ACM SIGPLAN Int’l Conf. on Principles and Practice of Declarative Programming (PPDP’04), pp. 179–190. ACM, New York (2004)
Brückner, I., Wehrheim, H.: Slicing an Integrated Formal Method for Verification. In: Lau, K.-K., Banach, R. (eds.) ICFEM 2005. LNCS, vol. 3785, pp. 360–374. Springer, Heidelberg (2005)
Chitil, O.: A Semantics for Tracing. In: Arts, T., Mohnen, M. (eds.) 13th Int’l Workshop on Implementation of Functional Languages (IFL’01), pp. 249–254. Ericsson CSL (2001)
Chitil, O., Runciman, C., Wallace, M.: Transforming Haskell for Tracing. In: Peña, R., Arts, T. (eds.) IFL 2002. LNCS, vol. 2670, pp. 165–181. Springer, Heidelberg (2003)
Chitil, O., Lou, Y.: Structure and Properties of Traces for Functional Programs. Electronic Notes in Theoretical Computer Science (ENTCS), vol. 176(1), pp. 39–63 (2007)
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)
Hoare, C.A.R.: Communicating Sequential Processes. Prentice-Hall, Upper Saddle River (1985)
Kavi, K.M., Sheldon, F.T., Shirazi, B., Hurson, A.R.: Reliability analysis of CSP specifications using Petri nets and Markov processes. In: 28th Annual Hawaii Int’l Conf. on System Sciences (HICSS’95) (Software Technology), vol. 2, pp. 516–524. IEEE Computer Society, Washington (1995)
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)
Leuschel, M., Llorens, M., Oliver, J., Silva, J., Tamarit, S.: SOC: a Slicer for CSP Specifications. In: Puebla, G., Vidal, G. (eds.) 2009 ACM SIGPLAN Symposium on Partial Evaluation and Semantics-based Program Manipulation (PEPM’09), pp. 165–168. ACM, New York (2009)
Leuschel, M., Llorens, M., Oliver, J., Silva, J., Tamarit, S.: The MEB and CEB Static Analysis for CSP Specifications. In: Hanus, M. (ed.) LOPSTR 2008. LNCS, vol. 5438, pp. 103–118. Springer, Heidelberg (2009)
Llorens, M., Oliver, J., Silva, J., Tamarit, S.: An Algorithm to Generate the Context-sensitive Synchronized Control Flow Graph. In: 25th ACM Symposium on Applied Computing (SAC 2010), vol. 3, pp. 2144–2148. ACM, New York (2010)
Llorens, M., Oliver, J., Silva, J., Tamarit, S.: A Tracking Semantics for CSP (Extended Version). Technical report, DSIC-II/03/10, Universidad Politécnica de Valencia (March 2010)
Roscoe, A.W.: The Theory and Practice of Concurrency. Prentice-Hall, Upper Saddle River (2005)
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)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2010 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Llorens, M., Oliver, J., Silva, J., Tamarit, S. (2010). A Tracking Semantics for CSP. In: Bolduc, C., Desharnais, J., Ktari, B. (eds) Mathematics of Program Construction. MPC 2010. Lecture Notes in Computer Science, vol 6120. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-13321-3_15
Download citation
DOI: https://doi.org/10.1007/978-3-642-13321-3_15
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-13320-6
Online ISBN: 978-3-642-13321-3
eBook Packages: Computer ScienceComputer Science (R0)