Skip to main content

Type-based analysis of communication for concurrent programming languages

  • Concurrency
  • Conference paper
  • First Online:
Static Analysis (SAS 1997)

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

Included in the following conference series:

Abstract

Powerful concurrency primitives in recent concurrent languages and thread libraries provide the great flexibility about implementation of high-level features like concurrent objects. However, they are so low-level that they often make it difficult to check global correctness of programs or to perform aggressive code optimization. We propose a static analysis method for inferring how many times each communication channel is used during execution of concurrent programs: a type system that is sensitive to usage information is constructed for this purpose and a type reconstruction algorithm is developed. Our analysis can, in particular, automatically detect linear channels (communication channels used just once): as studied by Kobayashi, Pierce, and Turner, they are very useful for reasoning about program behavior and aggressive code optimization. Our analysis has already been implemented and applied to the compiler of a concurrent language HACL; we present the results of simple benchmarks to show performance improvement gained by our analysis.

Research Fellow of the Japan Society for the Promotion of Science.

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

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Andrew W. Appel. Compiling with Continuations. Cambridge Univ. Press, 1992.

    Google Scholar 

  2. Christopher Colby. Analyzing the communication topology of concurrent programs. In ACM PEPM'95, 1995.

    Google Scholar 

  3. Atsushi Igarashi. Type-based analysis of usage of values for concurrent programming languages. Master's thesis, University of Tokyo, February 1997.

    Google Scholar 

  4. Atsushi Igarashi and Naoki Kobayashi. Type-based analysis of communication for concurrent programming languages. Technical Report 97-03, Department of Information Science, University of Tokyo, June 1997.

    Google Scholar 

  5. P.C. Kanellakis, H.G. Mairson, and J.C. Mitchell. Unification and ML type reconstruction. In Computational Logic, Essays in Honor of Alan Robinson, pages 444–478. MIT Press, 1991.

    Google Scholar 

  6. Naoki Kobayashi. A partially deadlock-free typed process calculus. In IEEE LICS, 1997.

    Google Scholar 

  7. Naoki Kobayashi, Motoki Nakade, and Akinori Yonezawa. Static analysis of communication for asynchronous concurrent programming languages. In SAS'95, volume 983 of LNCS, pages 225–242. Springer-Verlag, 1995.

    Google Scholar 

  8. Naoki Kobayashi, Benjamin C. Pierce, and David N. Turner. Linearity and the pi-calculus. In ACM POPL'96, pages 358–371, January 1996.

    Google Scholar 

  9. Naoki Kobayashi and Akinori Yonezawa. Higher-order concurrent linear logic programming. In Theory and Practice of Parallel Programming, volume 907 of LNCS, pages 137–166. Springer-Verlag, 1995.

    Google Scholar 

  10. Nicolas Mercouroff. An algorithm for analyzing communicating processes. In S. Brookes, M. Main, A. Melton, M. Mislove, and D. Schmidt, editors, Mathematical Foundations of Programming Semantics, volume 598 of LNCS, pages 312–325. Springer-Verlag, 1991.

    Google Scholar 

  11. Robin Milner. The polyadic π-calculus: a tutorial. Technical Report ECS-LFCS-91-180, Laboratory for Foundations of Computer Science, Department of Computer Science, University of Edinburgh, UK, 1991.

    Google Scholar 

  12. Hanne Riis Nielson and Flemming Nielson. Higher-order concurrent programs with finite communication topology. In ACM POPL'94, pages 84–97, 1994.

    Google Scholar 

  13. Hanne Riis Nielson and Flemming Nielson. Static and dynamic processor allocation for higher-order concurrent languages. In TAPSOFT'95: Theory and Practice of Software Development, LNCS, pages 590–604. Springer-Verlag, 1995.

    Google Scholar 

  14. Benjamin C. Pierce and Davide Sangiorgi. Typing and subtyping for mobile processes. In IEEE LICS'93, pages 376–385, 1993.

    Google Scholar 

  15. Benjamin C. Pierce and David N. Turner. Pict: A programming language based on the pi-calculus. Technical report, Computer Science Department, Indiana University, 1997. To appear in Milner Festschrift, MIT Press, 1997.

    Google Scholar 

  16. John H. Reppy. CML: A higher-order concurrent language. In ACM PLDI'91, pages 293–305, 1991.

    Google Scholar 

  17. David N. Turner, Philip Wadler, and Christian Mossin. Once upon a type. In ACM FPCA'95, San Diego, California, 1995.

    Google Scholar 

  18. Akinori Yonezawa. ABCL: An Object-Oriented' Concurrent System. MIT Press, 1990.

    Google Scholar 

  19. Akinori Yonezawa and Mario Tokoro. Object-Oriented Concurrent Programming. The MIT Press, 1987. *** DIRECT SUPPORT *** A0008C44 00005

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Pascal Van Hentenryck

Rights and permissions

Reprints and permissions

Copyright information

© 1997 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Igarashi, A., Kobayashi, N. (1997). Type-based analysis of communication for concurrent programming languages. In: Van Hentenryck, P. (eds) Static Analysis. SAS 1997. Lecture Notes in Computer Science, vol 1302. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0032742

Download citation

  • DOI: https://doi.org/10.1007/BFb0032742

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-63468-3

  • Online ISBN: 978-3-540-69576-9

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics