ABSTRACT
Session types provide a means to prescribe the communication behavior between concurrent message-passing processes. However, in a distributed setting, some processes may be written in languages that do not support static typing of sessions or may be compromised by a malicious intruder, violating invariants of the session types. In such a setting, dynamically monitoring communication between processes becomes a necessity for identifying undesirable actions. In this paper, we show how to dynamically monitor communication to enforce adherence to session types in a higher-order setting. We present a system of blame assignment in the case when the monitor detects an undesirable action and an alarm is raised. We prove that dynamic monitoring does not change system behavior for welltyped processes, and that one of an indicated set of possible culprits must have been compromised in case of an alarm.
- A. Ahmed, R. B. Findler, J. G. Siek, and P. Wadler. Blame for all. In 38th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL 2011), 2011. Google ScholarDigital Library
- L. Bocchi, T.-C. Chen, R. Demangeon, K. Honda, and N. Yoshida. Monitoring networks through multiparty session types. In Formal Techniques for Distributed Systems (FMOODS 2013), 2013.Google ScholarCross Ref
- L. Caires and F. Pfenning. Session types as intuitionistic linear propositions. In 21st International Conference on Concurrency Theory (CONCUR 2010), 2010. Google ScholarDigital Library
- L. Caires, F. Pfenning, and B. Toninho. Towards concurrent type theory. In 7th Workshop for Types in Language Design and Implementation (TLDI 2012), 2012. Notes for an invited talk. L. Caires, F. Pfenning, and B. Toninho. Linear logic propositions as session types. Mathematical Structures in Computer Science, pages 1–57, 2013. Google ScholarDigital Library
- Special Issue on Behavioural Types. I. Cervesato and A. Scedrov. Relating state-based and process-based concurrency through linear logic. Information and Computation, 207(10): 1044–1077, 2009. Google ScholarDigital Library
- T. Chen, L. Bocchi, P. Deniélou, K. Honda, and N. Yoshida. Asynchronous distributed monitoring for multiparty session enforcement. In 6th International Symposium on Trustworthy Global Computing (TGC 2011), 2011. Google ScholarDigital Library
- H. DeYoung, L. Caires, F. Pfenning, and B. Toninho. Cut reduction in linear logic as asynchronous session-typed communication. In 21st Conference on Computer Science Logic (CSL 2012), 2012.Google Scholar
- C. Dimoulas, R. B. Findler, C. Flanagan, and M. Felleisen. Correct Blame for Contracts: No More Scapegoating. In 38th Annual ACM SIGPLANSIGACT Symposium on Principles of Programming Languages (POPL 2011), 2011. Google ScholarDigital Library
- C. Dimoulas, S. T. Hochstadt, and M. Felleisen. Complete Monitors for Behavioral Contracts. In 21st European Conference on Programming Languages and Systems (ESOP 2012), 2012. Google ScholarDigital Library
- T. Disney, C. Flanagan, and J. McCarthy. Temporal higher-order contracts. In 16th ACM SIGPLAN International Conference on Functional Programming (ICFP 2011), 2011. Google ScholarDigital Library
- L. Fennell and P. Thiemann. The blame theorem for a linear lambda calculus with type dynamic. In 13th International Symposium on Trends in Functional Programming (TFP 2012), 2012.Google Scholar
- R. B. Findler and M. Felleisen. Contracts for Higher-order Functions. SIGPLAN Not., 37(9):48–59, 2002. Google ScholarDigital Library
- D. Griffith and E. L. Gunter. Liquid pi: Inferrable dependent session types. In 5th NASA Formal Methods Symposium (NSM 2013), 2013.Google ScholarCross Ref
- K. Honda. Types for dyadic interaction. In 4th International Conference on Concurrency Theory (CONCUR 1993), 1993. Google ScholarDigital Library
- K. Honda, V. T. Vasconcelos, and M. Kubo. Language primitives and type discipline for structured communication-based programming. In 7th European Symposium on Programming Languages and Systems (ESOP 1998), 1998. Google ScholarDigital Library
- L. Jia, H. Gommerstadt, and F. Pfenning. Monitors and blame assignment for higher-order session types. Technical Report CMU-CyLab-15-004, CyLab, Carnegie Mellon University, Nov. 2015.Google Scholar
- M. Keil and P. Thiemann. Blame assignment for higher-order contracts with intersection and union. In 20th ACM SIGPLAN International Conference on Functional Programming (ICFP 2015), 2015. Google ScholarDigital Library
- O. Laurent. Polarized proof-nets: Proof-nets for LC. In 4th International Conference on Typed Lambda Calculi and Applications (TLCA 1999), 1999. Google ScholarDigital Library
- J. A. Pérez, L. Caires, F. Pfenning, and B. Toninho. Linear logical relations and observational equivalences for session-based concurrency. Information and Computation, 239:254–302, 2014.Google ScholarDigital Library
- F. Pfenning. Substructural operational semantics and linear destinationpassing style. In 2nd Asian Symposium on Programming Languages and Systems (APLAS 2004), 2004. Abstract of invited talk. F. Pfenning and D. Griffith. Polarized substructural session types. In 18th International Conference on Foundations of Software Science and Computation Structures (FoSSaCS 2015), 2015. Invited talk. F. Pfenning, L. Caires, and B. Toninho. Proof-carrying code in a sessiontyped process calculus. In 1st International Conference on Certified Programs and Proofs (CPP 2011), 2011.Google Scholar
- C. Scholliers, Éric Tanter, and W. D. Meuter. Computational contracts. Science of Computer Programming, 98, Part 3:360 – 375, 2015. ISSN 0167-6423. Special Issue on Advances in Dynamic Languages. J. Siek, P. Thiemann, and P. Wadler. Blame and Coercion: Together Again for the First Time. In 36th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2015), 2015. Google ScholarDigital Library
- R. J. Simmons. Substructural Logical Specifications. PhD thesis, Carnegie Mellon University, Nov. 2012. Available as Technical Report CMU-CS- 12-142. N. Swamy, J. Chen, C. Fournet, P.-Y. Strub, K. Bhargavan, and J. Yang. Secure distributed programming with value-dependent types. In 17th International Conference on Functional Programming (ICFP 2011), 2011. Google ScholarDigital Library
- P. Thiemann. Session Types with Gradual Typing. In 9th International Symposium on Trustworthy Global Computing (TGC 2014). 2014.Google Scholar
- B. Toninho, L. Caires, and F. Pfenning. Higher-order processes, functions, and sessions: A monadic integration. In 22nd European Symposium on Programming (ESOP 2013), 2013. Google ScholarDigital Library
- P. Wadler. Propositions as sessions. In 17th International Conference on Functional Programming (ICFP 2012), 2012. Google ScholarDigital Library
- P. Wadler. A Complement to Blame. In 1st Summit on Advances in Programming Languages (SNAPL 2015), 2015.Google Scholar
- P. Wadler and R. B. Findler. Well-Typed Programs Can’t Be Blamed. In 18th European Symposium on Programming Languages and Systems (ESOP 2009), 2009. Google ScholarDigital Library
Index Terms
- Monitors and blame assignment for higher-order session types
Recommendations
Monitors and blame assignment for higher-order session types
POPL '16Session types provide a means to prescribe the communication behavior between concurrent message-passing processes. However, in a distributed setting, some processes may be written in languages that do not support static typing of sessions or may be ...
Gradual session types
Session types are a rich type discipline, based on linear types, that lift the sort of safety claims that come with type systems to communications. However, web-based applications and micro services are often written in a mix of languages, with type ...
Label-dependent session types
Session types have emerged as a typing discipline for communication protocols. Existing calculi with session types come equipped with many different primitives that combine communication with the introduction or elimination of the transmitted value.
...
Comments