Hostname: page-component-586b7cd67f-dsjbd Total loading time: 0 Render date: 2024-11-25T12:25:27.174Z Has data issue: false hasContentIssue false

Propositions as sessions*

Published online by Cambridge University Press:  31 January 2014

PHILIP WADLER*
Affiliation:
University of Edinburgh, South Bridge, Edinburgh EH8 9YL, UK (email: [email protected])
Rights & Permissions [Opens in a new window]

Abstract

Core share and HTML view are not available for this content. However, as you have access to this content, a full PDF is available via the ‘Save PDF’ action button.

Continuing a line of work by Abramsky (1994), Bellin and Scott (1994), and Caires and Pfenning (2010), among others, this paper presents CP, a calculus, in which propositions of classical linear logic correspond to session types. Continuing a line of work by Honda (1993), Honda et al. (1998), and Gay & Vasconcelos (2010), among others, this paper presents GV, a linear functional language with session types, and a translation from GV into CP. The translation formalises for the first time a connection between a standard presentation of session types and linear logic, and shows how a modification to the standard presentation yields a language free from races and deadlock, where race and deadlock freedom follows from the correspondence to linear logic.

Type
Articles
Copyright
Copyright © Cambridge University Press 2014 

Footnotes

*

The online version of this paper uses colour to highlight the relation of types to terms and source to target.

References

Abramsky, S. (1993) Computational interpretations of linear logic. Theor. Comput. Sci. 111 (1&2), 357.CrossRefGoogle Scholar
Abramsky, S. (1994) Proofs as processes. Theor. Comput. Sci. 135 (1), 59.CrossRefGoogle Scholar
Abramsky, S., Gay, S. J. & Nagarajan, R. (1996) Interaction categories and the foundations of typed concurrent programming. In Deductive Program Design: Proceedings of the 1994 Marktoberdorf Summer School, NATO ASI Series F, pp. 35–113.CrossRefGoogle Scholar
Bellin, G. & Scott, P. J. (1994) On the pi-calculus and linear logic. Theor. Comput. Sci. 135 (1), 1165.CrossRefGoogle Scholar
Benton, N. & Wadler, P. (1996) Linear logic, monads and the lambda calculus. In Logic in Computer Science (LICS), pp. 420–431.Google Scholar
Berger, M., Honda, K. & Yoshida, N. (2005) Genericity and the pi-calculus. Acta Inform. 42 (2–3), 83141.Google Scholar
Caires, L., Pérez, J. A., Pfenning, F. & Toninho, B. (2013) Behavioral polymorphism and parametricity in session-based communication. In European Symposium on Programming (ESOP), Lecture Notes in Computer Science, vol. 7792. Berlin, Germany: Springer, pp. 330349.Google Scholar
Caires, L. & Pfenning, F. (2010) Session types as intuitionistic linear propositions. In 21st International Conference on Concurrency Theory (CONCUR 2010), Paris, France, pp. 222236.Google Scholar
Caires, L., Pfenning, F. & Toninho, B. (January 2012a) Towards concurrent type theory. In Types in Language Design and Implementation (TLDI), pp. 1–12.CrossRefGoogle Scholar
Caires, L., Pfenning, F. & Toninho, B. (2013) Linear logic propositions as session types. Mathematical Structures in Computer Science. To appear in Special Issue on Behavioural Types.CrossRefGoogle Scholar
Carbone, M. & Debois, S. (2010) A graphical approach to progress for structured communication in web services. In Interaction and Concurrency Experience (ICE), pp. 13–27.CrossRefGoogle Scholar
Fähndrich, M., Aiken, M., Hawblitzel, C., Hodson, O., Hunt, G. C., Larus, J. R. & Levi, S. (2006) Language support for fast and reliable message-based communication in singularity OS. In European Conference on Computer Systems (EuroSys), pp. 177–190.CrossRefGoogle Scholar
Gallier, J. H. (1990) On Girard's “Candidats de Reducibilité”. Academic Press, pp. 123204.Google Scholar
Gay, S. J. & Hole, M. (2005) Subtyping for session types in the pi calculus. Acta Inform., 42 (2–3), 191225.Google Scholar
Gay, S. J. & Vasconcelos, V. T. (2010) Linear type theory for asynchronous session types. J. Funct. Program. 20 (1), 1950.Google Scholar
Girard, J.-Y. (1987) Linear logic. Theor. Comput. Sci. 50, 1102.CrossRefGoogle Scholar
Girard, J.-Y. (1991) A new constructive logic: Classical logic. Math. Struct. Comput. Sci. 1 (3), 255296.Google Scholar
Girard, J.-Y., Lafont, Y. & Taylor, P. (1989) Proofs and Types, Cambridge Tracts in Theoretical Computer Science, vol. 7. Cambridge, UK: Cambridge University Press.Google Scholar
Herbelin, H. (2005) On the degeneracy of sigma-types in presence of computational classical logic. In Typed Lambda Calculi and Applications (TLCA), pp. 209–220.Google Scholar
Honda, K. (1993) Types for dyadic interaction. In Proceedings of the 4th International Conference on Concurrency Theory (CONCUR 1993), Hildesheim, Germany, pp. 509523.Google Scholar
Honda, K., Vasconcelos, V. T. & Kubo, M. (1998) Language primitives and type discipline for structured communication-based programming. In European Symposium on Programming (ESOP), pp. 122–138.Google Scholar
Honda, K., Yoshida, N. & Carbone, M. (2008) Multiparty asynchronous session types. In Symposium on Principles of Programming Languages (POPL 2008), pp. 273–284.CrossRefGoogle Scholar
Kobayashi, N. (2002) Type systems for concurrent programs. In Proceedings of the 10th Anniversary Colloquium of UNU/IIST, LNCS, vol. 2757. Berlin, Germany: Springer-Verlag, pp. 439453.Google Scholar
Kobayashi, N., Pierce, B. C. & Turner, D. N. (1996) Linearity and the pi-calculus. In Principles of Programming Languages Symposium (POPL 1996), St. Petersburg Beach, FL, pp. 358371.Google Scholar
Kobayashi, N. & Yonezawa, A. (1993) ACL – A concurrent linear logic programming paradigm. In International Logic Programming Symposium (ILPS), pp. 279–294.Google Scholar
Kobayashi, N. & Yonezawa, A. (1994) Higher-order concurrent linear logic programming. In Theory and Practice of Parallel Programming, LNCS, vol. 907. Berlin, Germany: Springer-Verlag, pp. 137166.Google Scholar
Kobayashi, N. & Yonezawa, A. (1995) Asynchronous communication model based on linear logic. Form. Asp. Comput. 7 (2), 113149.CrossRefGoogle Scholar
Mazurak, K. & Zdancewic, S. (2010) Lolliproc: To concurrency from classical linear logic via Curry–Howard and control. In International Conference on Functional Programming (ICFP 2010), pp. 39–50.Google Scholar
Merro, M. & Sangiorgi, D. (2004) On asynchrony in name-passing calculi. Math. Struct. Comput. Sci. 14 (5), 715767.CrossRefGoogle Scholar
Miller, D.. (1992) The pi-calculus as a theory in linear logic: Preliminary results. In Extensions to Logic Programming, LNCS, vol. 660. Berlin, Germany: Springer-Verlag, pp. 242264.Google Scholar
Milner, R., Parrow, J. & Walker, D. (1992) A calculus of mobile processes, i. Inf. Comput. 100 (1), 140.Google Scholar
Pérez, J., Caires, L., Pfenning, F. & Toninho, B. (2012) Linear logical relations for session-based concurrency. In European Symposium on Programming (ESOP), pp. 539–558.Google Scholar
Pfenning, F., Caires, L. & Toninho, B. (2011) Proof-carrying code in a session-typed process calculus. In Certified Programs and Proofs (CPP), pp. 21–36.CrossRefGoogle Scholar
Pierce, B. C. & Sangiorgi, D. (2000) Behavioral equivalence in the polymorphic pi-calculus. J. ACM 47 (3), 531584.Google Scholar
Pierce, B. C. & Turner, D. N. (2000) Pict: A programming language based on the pi-calculus. In Proof, Language, and Interaction, Essays in Honour of Robin Milner, Plotkin, G. D., Stirling, C. and Tofte, M. (eds). Cambridge, MA: MIT Press, pp. 455494. ISBN: 978-0-262-16188-6.Google Scholar
Pitts, A. M. (2011) Structural recursion with locally scoped names. J. Funct. Program. 21 (3), 235286.CrossRefGoogle Scholar
Sumii, E. & Kobayashi, N. (1998) A generalized deadlock-free process calculus. (High-Level Concurrent Languages (HLCL), 1998). Electron. Notes Theor. Comput. Sci. 16 (3), 225247.Google Scholar
Takeuchi, K., Honda, K. & Kubo, M. (1994) An interaction-based language and its typing system. In Proceedings of the 6th International PARLE Conference, Athens, Greece, Halatsis, C., Maritsas, D. G., Philokyprou, G. and Theodoridis, S. (eds), LNCS, vol. 817. Berlin, Germany: Springer-Verlag, pp. 398413.Google Scholar
Toninho, B., Caires, L. & Pfenning, F. (2012) Functions as session-typed processes. In Foundations of Software Science and Computation (FoSSaCS), pp. 346–360.Google Scholar
Toninho, B., Caires, L. & Pfenning, F. (2013) Higher-order processes, functions, and sessions: A monadic integration. In 22nd European Symposium on Programming (ESOP'13), Lecture Notes in Computer Science, vol. 7792. New York, NY: Springer, pp. 350369.Google Scholar
Turner, D. N. (1995) The Polymorphic Pi-Calculus: Theory and Implementation, PhD thesis, University of Edinburgh, Edinburgh, UK.Google Scholar
Vasconcelos, V. T. (2011) Sessions, from types to programming languages. Bull. Eur. Assoc. Theor. Comput. Sci. 103, 5373.Google Scholar
Wadler, P. (September 2012) Propositions as sessions. In International Conference on Functional Programming (ICFP), pp. 273–286.CrossRefGoogle Scholar
Yoshida, N. & Vasconcelos, V. T. (2007) Language primitives and type discipline for structured communication-based programming revisited: Two systems for higher-order session communication. Electron. Notes Theor. Comput. Sci. 171 (4), 7393.CrossRefGoogle Scholar
Submit a response

Discussions

No Discussions have been published for this article.