Skip to main content

Session Types with Multiple Senders Single Receiver

  • Conference paper
  • First Online:
Dependable Software Engineering. Theories, Tools, and Applications (SETTA 2023)

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

  • 243 Accesses

Abstract

Message passing is a fundamental element in software development, ranging from concurrent and mobile computing to distributed services, but it suffers from communication errors such as deadlocks. Session types are a typing discipline for enforcing safe structured interactions between multiple participants. However, each typed interaction is restricted to having one fixed sender and one fixed receiver. In this paper, we extend session types with existential branching types, to handle a common interaction pattern with multiple senders and a single receiver in a synchronized setting, i.e. a receiver is available to receive messages from multiple senders, and which sender actually participates in the interaction cannot be determined till execution. We build the type system with existential branching types, which retain the important properties induced by standard session types: type safety, progress (i.e. deadlock-freedom), and fidelity. We further provide a novel communication type system to guarantee progress of dynamically interleaved multiparty sessions, by abandoning the strong restrictions of existing type systems. Finally, we encode Rust multi-thread primitives in the extended session types to show its expressivity, which can be considered as an attempt to check the deadlock-freedom of Rust multi-thread programs.

Supported by NSFC under grant No. 61972385, 62032024, and 62192732.

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 59.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 79.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

Similar content being viewed by others

Notes

  1. 1.

    Rust releases locks implicitly, but we treat \(\texttt {unlock}\) explicitly for illustrating our approach.

References

  1. Barwell, A.D., Scalas, A., Yoshida, N., Zhou, F.: Generalised multiparty session types with crash-stop failures. In: CONCUR 2022, volume 243 of LIPIcs, pp. 1–25. Schloss Dagstuhl - Leibniz-Zentrum für Informatik (2022)

    Google Scholar 

  2. Bettini, L., Coppo, M., D’Antoni, L., De Luca, M., Dezani-Ciancaglini, M., Yoshida, N.: Global progress in dynamically interleaved multiparty sessions. In: van Breugel, F., Chechik, M. (eds.) CONCUR 2008. LNCS, vol. 5201, pp. 418–433. Springer, Heidelberg (2008). https://doi.org/10.1007/978-3-540-85361-9_33

    Chapter  Google Scholar 

  3. Chen, R., Balzer, S., Toninho, B.: Ferrite: a judgmental embedding of session types in Rust. In: ECOOP 2022, volume 222 of LIPIcs, pp. 1–28. Schloss Dagstuhl - Leibniz-Zentrum für Informatik (2022)

    Google Scholar 

  4. Dezani-Ciancaglini, M., de’Liguoro, U., Yoshida, N.: On progress for structured communications. In: Barthe, G., Fournet, C. (eds.) TGC 2007. LNCS, vol. 4912, pp. 257–275. Springer, Heidelberg (2008). https://doi.org/10.1007/978-3-540-78663-4_18

    Chapter  Google Scholar 

  5. Deniélou, P.-M., Yoshida, N.: Dynamic multirole session types. In: POPL 2011, pp. 435–446. ACM (2011)

    Google Scholar 

  6. Fowler, S., Lindley, S., Morris, J.G., Decova, S.: Exceptional asynchronous session types: session types without tiers. In: POPL 2019, pp. 1–29. ACM (2019)

    Google Scholar 

  7. Gheri, L., Lanese, I., Sayers, N., Tuosto, E., Yoshida, N.: Design-by-contract for flexible multiparty session protocols. In: ECOOP 2022, volume 222 of LIPIcs, pp. 1–28. Schloss Dagstuhl - Leibniz-Zentrum für Informatik (2022)

    Google Scholar 

  8. Ghilezan, S., Jaksic, S., Pantovic, J., Scalas, A., Yoshida, N.: Precise subtyping for synchronous multiparty sessions. J. Log. Algebraic Methods Program. 104, 127–173 (2019)

    Article  MathSciNet  Google Scholar 

  9. Honda, K.: Types for dyadic interaction. In: Best, E. (ed.) CONCUR 1993. LNCS, vol. 715, pp. 509–523. Springer, Heidelberg (1993). https://doi.org/10.1007/3-540-57208-2_35

    Chapter  Google Scholar 

  10. Honda, K., Vasconcelos, V.T., Kubo, M.: Language primitives and type discipline for structured communication-based programming. In: Hankin, C. (ed.) ESOP 1998. LNCS, vol. 1381, pp. 122–138. Springer, Heidelberg (1998). https://doi.org/10.1007/BFb0053567

    Chapter  Google Scholar 

  11. Honda, K., Yoshida, N., Carbone, M.: Multiparty asynchronous session types. In: POPL 2008, pp. 273–284. ACM (2008)

    Google Scholar 

  12. Imai, K., Lange, J., Neykova, R.: Kmclib: automated inference and verification of session types from OCaml programs. In: TACAS 2022. LNCS, vol. 13243, pp. 379–386. Springer, Cham (2022). https://doi.org/10.1007/978-3-030-99524-9_20

    Chapter  Google Scholar 

  13. Jespersen, T.B.L., Munksgaard, P., Larsen, K.F.: Session types for rust. In: WGP@ICFP 2015, pp. 13–22. ACM (2015)

    Google Scholar 

  14. Ji, Z., Wang, S., Xu, X.: Session types with multiple senders single receiver (report version). https://arxiv.org/abs/2310.12187 (2023). arxiv CoRR (2023)

  15. Kobayashi, N.: Type-based information flow analysis for the pi-calculus. Acta Informatica 42(4–5), 291–347 (2005)

    Article  MathSciNet  Google Scholar 

  16. Kobayashi, N.: A new type system for deadlock-free processes. In: Baier, C., Hermanns, H. (eds.) CONCUR 2006. LNCS, vol. 4137, pp. 233–247. Springer, Heidelberg (2006). https://doi.org/10.1007/11817949_16

    Chapter  Google Scholar 

  17. Kokke, W.: Rusty variation: deadlock-free sessions with failure in rust. In: ICE 2019, volume 304 of EPTCS, pp. 48–60 (2019)

    Google Scholar 

  18. Lagaillardie, N., Neykova, R., Yoshida, N.: Implementing multiparty session types in rust. In: Bliudze, S., Bocchi, L. (eds.) COORDINATION 2020. LNCS, vol. 12134, pp. 127–136. Springer, Cham (2020). https://doi.org/10.1007/978-3-030-50029-0_8

    Chapter  Google Scholar 

  19. Lange, J., Yoshida, N.: Verifying asynchronous interactions via communicating session automata. In: Dillig, I., Tasiran, S. (eds.) CAV 2019. LNCS, vol. 11561, pp. 97–117. Springer, Cham (2019). https://doi.org/10.1007/978-3-030-25540-4_6

    Chapter  Google Scholar 

  20. Majumdar, R., Yoshida, N., Zufferey, D.: Multiparty motion coordination: From choreographies to robotics programs. Proc. ACM Program. Lang. 4(OOPSLA), 1–30 (2020)

    Google Scholar 

  21. Pierce, B.C.: Types and Programming Languages. MIT Press, Cambridge (2002)

    Google Scholar 

  22. Scalas, A., Yoshida, N.: Multiparty session types, beyond duality. J. Log. Algebraic Methods Program. 97, 55–84 (2018)

    Article  MathSciNet  Google Scholar 

  23. Scalas, A., Yoshida, N.: Less is more: multiparty session types revisited. In: POPL 2019, pp. 1–29 (2019)

    Google Scholar 

  24. Toninho, B., Yoshida, N.: Certifying data in multiparty session types. J. Log. Algebraic Methods Program. 90, 61–83 (2017)

    Article  MathSciNet  Google Scholar 

  25. Toninho, B., Yoshida, N.: Depending on session-typed processes. In: Baier, C., Dal Lago, U. (eds.) FoSSaCS 2018. LNCS, vol. 10803, pp. 128–145. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-89366-2_7

    Chapter  Google Scholar 

  26. Tu, T., Liu, X., Song, L., Zhang, Y.: Understanding real-world concurrency bugs in go. In: ASPLOS 2019, pp. 865–878. ACM (2019)

    Google Scholar 

  27. Wu, H., Xi, H.: Dependent session types. https://arxiv.org/abs/1704.07004. arXiv CoRR. (2017)

  28. Yoshida, N., Deniélou, P.-M., Bejleri, A., Hu, R.: Parameterised multiparty session types. In: Ong, L. (ed.) FoSSaCS 2010. LNCS, vol. 6014, pp. 128–145. Springer, Heidelberg (2010). https://doi.org/10.1007/978-3-642-12032-9_10

    Chapter  Google Scholar 

  29. Yoshida, N., Gheri, L.: A very gentle introduction to multiparty session types. In: Hung, D.V., D’Souza, M. (eds.) ICDCIT 2020. LNCS, vol. 11969, pp. 73–93. Springer, Cham (2020). https://doi.org/10.1007/978-3-030-36987-3_5

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Shuling Wang .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2024 The Author(s), under exclusive license to Springer Nature Singapore Pte Ltd.

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Ji, Z., Wang, S., Xu, X. (2024). Session Types with Multiple Senders Single Receiver. In: Hermanns, H., Sun, J., Bu, L. (eds) Dependable Software Engineering. Theories, Tools, and Applications. SETTA 2023. Lecture Notes in Computer Science, vol 14464. Springer, Singapore. https://doi.org/10.1007/978-981-99-8664-4_7

Download citation

  • DOI: https://doi.org/10.1007/978-981-99-8664-4_7

  • Published:

  • Publisher Name: Springer, Singapore

  • Print ISBN: 978-981-99-8663-7

  • Online ISBN: 978-981-99-8664-4

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics