skip to main content
10.1145/2837614.2837662acmconferencesArticle/Chapter ViewAbstractPublication PagespoplConference Proceedingsconference-collections
research-article

Monitors and blame assignment for higher-order session types

Published:11 January 2016Publication History

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.

References

  1. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  2. 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 ScholarGoogle ScholarCross RefCross Ref
  3. L. Caires and F. Pfenning. Session types as intuitionistic linear propositions. In 21st International Conference on Concurrency Theory (CONCUR 2010), 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  5. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  6. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  7. 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 ScholarGoogle Scholar
  8. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  9. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  10. T. Disney, C. Flanagan, and J. McCarthy. Temporal higher-order contracts. In 16th ACM SIGPLAN International Conference on Functional Programming (ICFP 2011), 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. 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 ScholarGoogle Scholar
  12. R. B. Findler and M. Felleisen. Contracts for Higher-order Functions. SIGPLAN Not., 37(9):48–59, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. D. Griffith and E. L. Gunter. Liquid pi: Inferrable dependent session types. In 5th NASA Formal Methods Symposium (NSM 2013), 2013.Google ScholarGoogle ScholarCross RefCross Ref
  14. K. Honda. Types for dyadic interaction. In 4th International Conference on Concurrency Theory (CONCUR 1993), 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  16. 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 ScholarGoogle Scholar
  17. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  18. O. Laurent. Polarized proof-nets: Proof-nets for LC. In 4th International Conference on Typed Lambda Calculi and Applications (TLCA 1999), 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  20. 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 ScholarGoogle Scholar
  21. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  22. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  23. P. Thiemann. Session Types with Gradual Typing. In 9th International Symposium on Trustworthy Global Computing (TGC 2014). 2014.Google ScholarGoogle Scholar
  24. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  25. P. Wadler. Propositions as sessions. In 17th International Conference on Functional Programming (ICFP 2012), 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. P. Wadler. A Complement to Blame. In 1st Summit on Advances in Programming Languages (SNAPL 2015), 2015.Google ScholarGoogle Scholar
  27. 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 ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Monitors and blame assignment for higher-order session types

          Recommendations

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in
          • Published in

            cover image ACM Conferences
            POPL '16: Proceedings of the 43rd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
            January 2016
            815 pages
            ISBN:9781450335492
            DOI:10.1145/2837614
            • cover image ACM SIGPLAN Notices
              ACM SIGPLAN Notices  Volume 51, Issue 1
              POPL '16
              January 2016
              815 pages
              ISSN:0362-1340
              EISSN:1558-1160
              DOI:10.1145/2914770
              • Editor:
              • Andy Gill
              Issue’s Table of Contents

            Copyright © 2016 ACM

            Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Published: 11 January 2016

            Permissions

            Request permissions about this article.

            Request Permissions

            Check for updates

            Qualifiers

            • research-article

            Acceptance Rates

            Overall Acceptance Rate824of4,130submissions,20%

            Upcoming Conference

            POPL '25

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader