Nothing Special   »   [go: up one dir, main page]

Skip to main content

Control Flow Analysis for the Join Calculus

  • Conference paper
Static Analysis (SAS 2012)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 7460))

Included in the following conference series:

Abstract

Since first being described, the Join Calculus has been incorporated into a variety of languages as an alternative concurrency primitive. While there has been some work on efficient library implementation of the calculus, there has been little on statically analysing and transforming it. This work explores adapting conventional analysis techniques to the Join Calculus. In particular, we present three variations of control flow analysis for a flattened version, and consider two important optimisations: inlining and queue bounding.

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

Access this chapter

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

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.

Similar content being viewed by others

References

  1. Benton, N., Cardelli, L., Fournet, C.: Modern Concurrency Abstractions for C#. TOPLAS 26(5), 769–804 (2004)

    Article  Google Scholar 

  2. Calvert, P., Mycroft, A.: Mapping the Join Calculus to Heterogeneous Hardware. In: 5th International Workshop on Programming Language Approaches to Concurrency and Communication-cEntric Software, PLACES, pp. 45–51 (2012)

    Google Scholar 

  3. Conchon, S., Le Fessant, F.: JoCaml: Mobile Agents for Objective-Caml. In: 1st International Symposium on Agent Systems and Applications, and 3rd International Symposium on Mobile Agents, ASAMA, pp. 22–29. IEEE (1999)

    Google Scholar 

  4. Faxén, K.-F.: Polyvariance, Polymorphism and Flow Analysis. In: Dam, M. (ed.) LOMAPS-WS 1996. LNCS, vol. 1192, pp. 260–278. Springer, Heidelberg (1997)

    Chapter  Google Scholar 

  5. Fournet, C., Gonthier, G.: The Reflexive CHAM and the Join-Calculus. In: 23rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL, pp. 372–385. ACM (1996)

    Google Scholar 

  6. Jones, N.D., Muchnick, S.: Complexity of Flow Analysis, Inductive Assertion Synthesis and a Language due to Dijkstra. In: 21st Annual Symposium on Foundations of Computer Science, FOCS, pp. 185–190. IEEE (1980)

    Google Scholar 

  7. Le Fessant, F., Maranget, L.: Compiling Join-Patterns. In: 3rd International Workshop on High-Level Concurrent Languages, HLCL. Electronic Notes in Theoretical Computer Science, vol. 16(3), pp. 205–224 (1998)

    Google Scholar 

  8. Lindholm, T., Yellin, F., Bracha, G., Buckley, A.: The Java Virtual Machine Specification. Oracle (2011)

    Google Scholar 

  9. Might, M.: Abstract Interpreters for Free. In: Cousot, R., Martel, M. (eds.) SAS 2010. LNCS, vol. 6337, pp. 407–421. Springer, Heidelberg (2010)

    Chapter  Google Scholar 

  10. Might, M., Van Horn, D.: A Family of Abstract Interpretations for Static Analysis of Concurrent Higher-Order Programs. In: Yahav, E. (ed.) SAS 2011. LNCS, vol. 6887, pp. 180–197. Springer, Heidelberg (2011)

    Chapter  Google Scholar 

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

    Google Scholar 

  12. Odersky, M.: Functional Nets. In: Smolka, G. (ed.) ESOP/ETAPS 2000. LNCS, vol. 1782, pp. 1–25. Springer, Heidelberg (2000)

    Google Scholar 

  13. Pratt, V.: Modeling Concurrency with Partial Orders. International Journal of Parallel Programming 15(1), 33–71 (1986)

    Article  MathSciNet  MATH  Google Scholar 

  14. Reppy, J., Xiao, Y.: Specialization of CML Message-Passing Primitives. In: 34th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL, pp. 315–326. ACM (2007)

    Google Scholar 

  15. Russo, C.: The Joins Concurrency Library. In: Hanus, M. (ed.) PADL 2007. LNCS, vol. 4354, pp. 260–274. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  16. Shivers, O.G.: Control-Flow Analysis of Higher-Order Languages. PhD thesis, Carnegie Mellon University (1991)

    Google Scholar 

  17. Turon, A., Russo, C.: Scalable Join Patterns. In: International Conference on Object-Oriented Programming Systems, Languages and Applications, OOPSLA, pp. 575–594. ACM (2011)

    Google Scholar 

  18. Von Itzstein, G.S.: Introduction of High Level Concurrency Semantics in Object Oriented Languages. PhD thesis, University of South Australia (2005)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2012 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Calvert, P., Mycroft, A. (2012). Control Flow Analysis for the Join Calculus. In: Miné, A., Schmidt, D. (eds) Static Analysis. SAS 2012. Lecture Notes in Computer Science, vol 7460. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-33125-1_14

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-33125-1_14

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-33124-4

  • Online ISBN: 978-3-642-33125-1

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics