Skip to main content

Communication Topology Analysis for Concurrent Programs

  • Conference paper
SPIN Model Checking and Software Verification (SPIN 2000)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1885))

Included in the following conference series:

Abstract

In this article, we address the problem of statically determining an approximation of the communication topology of concurrent programs. These programs may contain dynamic process and channel creations and may communicate channel names as well as functions, possibly containing other communications.

We introduce a control flow analysis which builds finite state automata to improve its precision. The method is twofold. First, we build an automaton for each process in the concurrent system yielding an approximation of how the synchronizations realized by the sequential components are ordered. Second, we extract the communication topology from a reduced product automaton, which size is polynomial in the size of the original program. This analysis was implemented and we apply it to the verification of a circuit allocation mechanism.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Alles, A.: ATM Internetworking. Technical report, CISCO Systems Inc. (1995)

    Google Scholar 

  2. Amtoft, T., Nielson, F., Nielson, H.R.: Behaviour analysis and safety conditions: a case study in CML. In: Astesiano, E. (ed.) ETAPS 1998 and FASE 1998. LNCS, vol. 1382, pp. 255–269. Springer, Heidelberg (1998)

    Chapter  Google Scholar 

  3. Berry, D., Milner, R., Turner, D.N.: A semantics for ML concurrency primitives. In: Proceedings of the ACM-SIGPLAN Symposium on Principles of Programming Languages POPL 1992, ACM, New York (1992)

    Google Scholar 

  4. Bodei, C., Degano, P., Nielson, F., Nielson, H.R.: Control flow analysis for the pi-calculus. In: Sangiorgi, D., de Simone, R. (eds.) CONCUR 1998. LNCS, vol. 1466, pp. 84–98. Springer, Heidelberg (1998)

    Chapter  Google Scholar 

  5. Bodei, C., Degano, P., Nielson, F., Nielson, H.R.: Static analysis of processes for no read-up and no write-down. In: Thomas, W. (ed.) FOSSACS 1999. LNCS, vol. 1578, pp. 120–134. Springer, Heidelberg (1999)

    Chapter  Google Scholar 

  6. Colby, C.: Analyzing the communication topology of concurrent pro- grams. In: Proceedings of the ACM-SIGPLAN Symposium on Partial Evaluation and semantic based program manipulations PEPM 1995, pp. 202–213. ACM, New York (1995)

    Chapter  Google Scholar 

  7. Consel, C., Danvy, O.: Partial evaluation: Principles and perspectives. In: Proceedings of the ACM-SIGPLAN Symposium on Principles of Programming Languages POPL 1993. ACM, New York (1993)

    Google Scholar 

  8. Gengler, M., Martel, M.: Self-applicable partial evaluation for the pi-calculus. In: Partial Evaluation and Semantics-Based Program Manipulation, PEPM 1997, pp. 36–46 (1997)

    Google Scholar 

  9. Gengler, M., Martel, M.: Desétages en Concurrent ML. In: Rencontres Francophones du Parallélisme, Renpar10 (1998)

    Google Scholar 

  10. Jagannathan, S.: Locality abstractions for parallel and distributed computing. In: Ito, T., Yonezawa, A. (eds.) TPPP 1994. LNCS, vol. 907, Springer, Heidelberg (1995)

    Chapter  Google Scholar 

  11. Kobayashi, N., Nakade, M., Yonezawa, A.: Static analysis of communications for asynchronous concurrent programming languages. In: Mycroft, A. (ed.) SAS 1995. LNCS, vol. 983, pp. 225–242. Springer, Heidelberg (1995)

    Google Scholar 

  12. Marinescu, M., Goldberg, B.: Partial evaluation techniques for con- current programs. In: ACM-SIGPLAN Symposium on Partial Evaluation and Semantic Based Program Manipulations PEPM 1997, pp. 47–62. ACM, New York (1997)

    Chapter  Google Scholar 

  13. Mercouroff, N.: An algorithm for analyzing communicating processes. LNCS, vol. 598, pp. 312–325. Springer, Heidelberg (1992)

    Google Scholar 

  14. Nielson, F., Nielson, H.R.: Constraints for polymorphics behaviours of Concurrent ML. In: Jouannaud, J.-P. (ed.) CCL 1994. LNCS, vol. 845, pp. 73–88. Springer, Heidelberg (1994)

    Chapter  Google Scholar 

  15. Nielson, F., Nielson, H.R.: Higher-order concurrent programs with finite communication topology. In: Proceedings of the ACM-SIGPLAN Symposium on Principles of Programming Languages POPL 1994, pp. 84–97. ACM, New York (1994)

    Chapter  Google Scholar 

  16. Nielson, F., Nielson, H.R.: Static and dynamic processor allocation for higher-order concurrent languages. In: Mosses, P.D., Schwartzbach, M.I., Nielsen, M. (eds.) CAAP 1995, FASE 1995, and TAPSOFT 1995. LNCS, vol. 915, pp. 590–604. Springer, Heidelberg (1995)

    Google Scholar 

  17. Nielson, F., Nielson, H.R.: Infinitary control flow analysis: a collec- ting semantics for closure analysis. In: ACM-SIGPLAN Symposium on Principles of Programming Languages POPL 1997, pp. 332–345. ACM, New York (1997)

    Chapter  Google Scholar 

  18. Nielson, F., Nielson, H.R.: Communication analysis for Concurrent ML. In: ML with Concurrency. Monograph in Computer Science, pp. 185–251. Springer, Heidelberg (1999)

    Google Scholar 

  19. Nielson, F., Nielson, H.R., Hankin, C.: Principles of Program Analysis. Springer, Heidelberg (1999)

    MATH  Google Scholar 

  20. Reppy, J.H.: An operational semantics of first-class synchronous operations. Technical Report TR-91-1232, Department of Computer Science, Cornell University, Ithaca, NY 14853 (1991)

    Google Scholar 

  21. Reppy, J.H.: Higher-order Concurrency. PhD thesis, Department of Computer Science, Cornell University, Ithaca, NY 14853 (1992)

    Google Scholar 

  22. Reppy, J.H.: Concurrent Programming in ML. Cambridge University Press, Cambridge (1999)

    Book  Google Scholar 

  23. Shivers, O.: Control flow analysis in scheme. In: Proceedings of the ACM- SIGPLAN Conference on Programming Language Design and Implementation, PLDI 1988, pp. 164–174. ACM, New York (1988)

    Chapter  Google Scholar 

  24. Shivers, O.: Control Flow Analysis of Higher Order Languages. PhD thesis, Carnegie Mellon University, Technical Report CMU-CS-91-145 (1991)

    Google Scholar 

  25. Solberg, K.L., Nielson, F., Nielson, H.R.: Systematic realisation of control flow analyses for CML. In: ACM-SIGPLAN International Conference on Functional Programming, ICFP 1997, pp. 38–51. ACM, New York (1997)

    Google Scholar 

  26. Tanenbaum, A.S.: Computer Networks, 3rd edn. Prentice Hall, Englewood Cliffs (1996)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2000 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Martel, M., Gengler, M. (2000). Communication Topology Analysis for Concurrent Programs. In: Havelund, K., Penix, J., Visser, W. (eds) SPIN Model Checking and Software Verification. SPIN 2000. Lecture Notes in Computer Science, vol 1885. Springer, Berlin, Heidelberg. https://doi.org/10.1007/10722468_16

Download citation

  • DOI: https://doi.org/10.1007/10722468_16

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-41030-0

  • Online ISBN: 978-3-540-45297-3

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics