Monotonic Gradual Typing in a Common Calculus
Gradual typing refers to the notion that programs can be incrementally decorated with type annotations. Languages that support this approach to software development allow for programs being in various states of “typedness” on a scale ranging from entirely untyped to fully statically typed. Points in the middle of this typed-untyped scale create interactions between typed and untyped code, which is where gradual type systems differ. Each gradual type system comes with tradeoffs. Some systems provide strong guarantees at the expense of vastly degraded performance; others do not impact the running time of programs, but they do little to prevent type errors. This paper looks at an intriguing point in the landscape of these systems: the monotonic semantics. The monotonic semantics is designed to reduce the overhead of typed field access through a different enforcement mechanism compared to other gradual type systems. In our previous paper, we described four semantics for gradual typing. This paper uses the framework of that companion paper to present and explore a formulation for the monotonic semantics. In comparison to the others, the monotonic semantics is designed to reduce the overhead of typed field access. We translate a common gradually typed source language to a common statically typed target language according to the monotonic semantics, allowing easy comparison to other gradual type systems in our framework.
Mon 16 Jul
|11:00 - 11:30|
|11:30 - 12:00|
Tamás Szabóitemis AG / TU Delft, Edlira KuciTU Darmstadt, Germany, Matthijs BijmanDelft University of Technology, Mira MeziniTU Darmstadt, Sebastian ErdwegTU DelftPre-print
|12:00 - 12:30|
Juliana FrancoMicrosoft Research, Cambridge, Alexandros TasosImperial College London, Sophia DrossopoulouImperial College London, Tobias WrigstadUppsala University, Susan EisenbachImperial College LondonPre-print