Abstract
Session types are a well-established approach to communication correctness in message-passing programs. We present an executable specification of the operational semantics of a session-typed \(\pi \)-calculus, implemented in the Maude system. We also develop an executable specification of its associated algorithmic type checking, and describe how both specifications can be integrated. We further explore how our executable specification enables us to detect well-typed but deadlocked processes by leveraging reachability and model checking tools in Maude. Our developments define a promising new approach to the (semi)automated analysis of communication correctness in message-passing concurrency.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Notes
References
Caires, L., Pfenning, F., Toninho, B.: Linear logic propositions as session types. Math. Struct. Comput. Sci. 26(3), 367–423 (2016)
Clavel, M., et al.: All About Maude - A High-Performance Logical Framework. LNCS, vol. 4350. Springer, Heidelberg (2007). https://doi.org/10.1007/978-3-540-71999-1
Hüttel, H., et al.: Foundations of session types and behavioural contracts. ACM Comput. Surv. 49(1), 3:1–3:36 (2016). https://doi.org/10.1145/2873052
Kouzapas, D., Pérez, J.A., Yoshida, N.: On the relative expressiveness of higher-order session processes. Inf. Comput. 268 (2019). https://doi.org/10.1016/j.ic.2019.06.002
Milner, R., Parrow, J., Walker, D.: A calculus of mobile processes. I. Inf. Comput. 100(1), 1–40 (1992)
Padovani, L.: Deadlock and lock freedom in the linear \(\pi \)-calculus. In: Proceedings of the Joint Meeting of the Twenty-Third EACSL Annual Conference on Computer Science Logic (CSL) and the Twenty-Ninth Annual ACM/IEEE Symposium on Logic in Computer Science (LICS), CSL-LICS 2014. Association for Computing Machinery, New York (2014). https://doi.org/10.1145/2603088.2603116
Pitsiladis, G.V., Stefaneas, P.: Implementation of privacy calculus and its type checking in Maude. In: Margaria, T., Steffen, B. (eds.) ISoLA 2018. LNCS, vol. 11245, pp. 477–493. Springer, Cham (2018). https://doi.org/10.1007/978-3-030-03421-4_30
Ramírez Restrepo, C.A., Pérez, J.A.: Executable rewriting semantics for session-based concurrency (Extended Version). Technical report, Pontificia Universidad Javeriana Cali/University of Groningen (2022). https://japerezp.github.io/files/wrla22-long.pdf
Sangiorgi, D., Walker, D.: The Pi-Calculus: A Theory of Mobile Processes. Cambridge University Press (2003). http://books.google.com/books?id=QkBL_7VtiPgC
Scalas, A., Yoshida, N.: Less is more: multiparty session types revisited. Proc. ACM Program. Lang. 3(POPL), 30:1–30:29 (2019). https://doi.org/10.1145/3290343
Stehr, M.: CINNI - a generic calculus of explicit substitutions and its application to \(\lambda \)-, \(\varsigma \)- and \(\pi \)-calculi. In: Futatsugi, K. (ed.) The 3rd International Workshop on Rewriting Logic and its Applications, WRLA 2000, Kanzawa, Japan, 18–20 September 2000. Electronic Notes in Theoretical Computer Science, vol. 36, pp. 70–92. Elsevier (2000). https://doi.org/10.1016/S1571-0661(05)80125-2
Thati, P., Sen, K., Martí-Oliet, N.: An executable specification of asynchronous pi-calculus semantics and may testing in Maude 2.0. Electron. Notes Theor. Comput. Sci. 71, 261–281 (2002). https://doi.org/10.1016/S1571-0661(05)82539-3
Vasconcelos, V.T.: Fundamentals of session types. Inf. Comput. 217, 52–70 (2012). https://doi.org/10.1016/j.ic.2012.05.002
Viry, P.: Input/output for ELAN. Electron. Notes Theor. Comput. Sci. 4, 51–64 (1996). https://doi.org/10.1016/S1571-0661(04)00033-7. First International Workshop on Rewriting Logic and its Applications, WRLA 1996, Asilomar, USA, 1996
Viry, P.: A rewriting implementation of pi-calculus. Technical report, University of Pisa (1996). http://eprints.adm.unipi.it/id/eprint/1952
Wadler, P.: Propositions as sessions. J. Funct. Program. 24(2–3), 384–418 (2014)
Acknowledgements
This work has been partially supported by the Dutch Research Council (NWO) under project No. 016.Vidi.189.046 (Unifying Correctness for Communicating Software).
We are grateful to Camilo Rocha for his useful suggestions on this work, to the anonymous reviewers for their careful reading, and to the WRLA’22 attendees for constructive remarks.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2022 Springer Nature Switzerland AG
About this paper
Cite this paper
Ramírez Restrepo, C.A., Pérez, J.A. (2022). Executable Semantics and Type Checking for Session-Based Concurrency in Maude. In: Bae, K. (eds) Rewriting Logic and Its Applications. WRLA 2022. Lecture Notes in Computer Science, vol 13252. Springer, Cham. https://doi.org/10.1007/978-3-031-12441-9_12
Download citation
DOI: https://doi.org/10.1007/978-3-031-12441-9_12
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-031-12440-2
Online ISBN: 978-3-031-12441-9
eBook Packages: Computer ScienceComputer Science (R0)