Towards Gradually Typed Capabilities in the Pi-Calculus

Gradual typing is an approach to integrating static and dynamic typing within the same language, and puts the programmer in control of which regions of code are type checked at compile-time and which are type checked at run-time. In this paper, we focus on the pi-calculus equipped with types for the modeling of input-output capabilities of channels. We present our preliminary work towards a gradually typed version of this calculus. We present a type system, a cast insertion procedure that automatically inserts run-time checks, and an operational semantics of a pi-calculus that handles casts on channels. Although we do not claim any theoretical results on our formulations, we demonstrate our calculus with an example and discuss our future plans.

[1]  Jeremy G. Siek,et al.  Toward efficient gradual typing for structural types via coercions , 2019, PLDI.

[2]  Martín Abadi,et al.  Understanding TypeScript , 2014, ECOOP.

[3]  Éric Tanter,et al.  Gradual refinement types , 2017, POPL.

[4]  Jeremy G. Siek,et al.  Threesomes, with and without blame , 2009, STOP@ECOOP.

[5]  Sam Tobin-Hochstadt,et al.  Interlanguage migration: from scripts to programs , 2006, OOPSLA '06.

[6]  Daniel R. Licata,et al.  Gradual type theory , 2019, Proc. ACM Program. Lang..

[7]  Jeremy G. Siek,et al.  The gradualizer: a methodology and algorithm for generating gradual type systems , 2016, POPL.

[8]  Peter Thiemann,et al.  Session Types with Gradual Typing , 2014, TGC.

[9]  Robert Harper,et al.  Practical Foundations for Programming Languages , 2012 .

[10]  Jeremy G. Siek Gradual Typing for Functional Languages , 2006 .

[11]  Éric Tanter,et al.  Abstracting gradual typing , 2016, POPL.

[12]  Davide Sangiorgi,et al.  Typing and subtyping for mobile processes , 1993, [1993] Proceedings Eighth Annual IEEE Symposium on Logic in Computer Science.

[13]  John Tang Boyland,et al.  Refined Criteria for Gradual Typing , 2015, SNAPL.

[14]  Sophia Drossopoulou,et al.  BabyJ: from object based to class based programming via types , 2003, WOOD.

[15]  Peter Thiemann,et al.  Gradual session types , 2017, Journal of Functional Programming.

[16]  Philip Wadler,et al.  Blame for all , 2011, POPL '11.

[17]  Atsushi Igarashi,et al.  On polymorphic gradual typing , 2017, Proc. ACM Program. Lang..

[18]  Jeremy G. Siek,et al.  Automatically generating the dynamic semantics of gradually typed languages , 2017, POPL.

[19]  Philip Wadler,et al.  Blame and coercion: together again for the first time , 2015, Journal of Functional Programming.

[20]  Matías Toro,et al.  Type-Driven Gradual Security with References , 2018, ACM Trans. Program. Lang. Syst..

[21]  Philip Wadler,et al.  Well-Typed Programs Can't Be Blamed , 2009, ESOP.

[22]  Sam Tobin-Hochstadt,et al.  The Recursive Union of Some Gradual Types , 2016, A List of Successes That Can Change the World.

[23]  Éric Tanter,et al.  Gradual type-and-effect systems , 2016, J. Funct. Program..