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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Benton, N., Cardelli, L., Fournet, C.: Modern Concurrency Abstractions for C#. TOPLAS 26(5), 769–804 (2004)
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)
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)
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)
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)
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)
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)
Lindholm, T., Yellin, F., Bracha, G., Buckley, A.: The Java Virtual Machine Specification. Oracle (2011)
Might, M.: Abstract Interpreters for Free. In: Cousot, R., Martel, M. (eds.) SAS 2010. LNCS, vol. 6337, pp. 407–421. Springer, Heidelberg (2010)
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)
Nielson, F., Nielson, H.R., Hankin, C.: Principles of Program Analysis. Springer (1999)
Odersky, M.: Functional Nets. In: Smolka, G. (ed.) ESOP/ETAPS 2000. LNCS, vol. 1782, pp. 1–25. Springer, Heidelberg (2000)
Pratt, V.: Modeling Concurrency with Partial Orders. International Journal of Parallel Programming 15(1), 33–71 (1986)
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)
Russo, C.: The Joins Concurrency Library. In: Hanus, M. (ed.) PADL 2007. LNCS, vol. 4354, pp. 260–274. Springer, Heidelberg (2007)
Shivers, O.G.: Control-Flow Analysis of Higher-Order Languages. PhD thesis, Carnegie Mellon University (1991)
Turon, A., Russo, C.: Scalable Join Patterns. In: International Conference on Object-Oriented Programming Systems, Languages and Applications, OOPSLA, pp. 575–594. ACM (2011)
Von Itzstein, G.S.: Introduction of High Level Concurrency Semantics in Object Oriented Languages. PhD thesis, University of South Australia (2005)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)