Gradual typing combines static and dynamic typing flexibly and safely in a single programming language. To do so, gradually typed languages implicitly insert casts where needed, to ensure at runtime that typing assumptions are not violated by untyped code. However, the implicit nature of cast insertion, especially on higher-order values, can jeopardize reliability and efficiency: higher-order casts can fail at any time, and are costly to execute. We propose Confined Gradual Typing to provide programmers with explicit means to restrict the flexibility of gradual typing to selectively regain reliability and efficiency guarantees. We introduce two new type qualifiers that allow programmers to control the flow of values between the typed and the untyped worlds. We formally develop two variants of Confined Gradual Typing that capture different flexibility/guarantee tradeoffs. We report on the implementation of Confined Gradual Typing in Gradualtalk, a gradually-typed Smalltalk, which confirms the performance advantage of avoiding unwanted higher-order casts and the low overhead of the approach.
Thu 23 OctDisplayed time zone: Tijuana, Baja California change
10:30 - 12:00 | |||
10:30 22mTalk | Rate Types for Stream Programs OOPSLA Link to publication File Attached | ||
10:52 22mTalk | Foundations of Path-Dependent Types OOPSLA Nada Amin EPFL, Tiark Rompf Purdue & Oracle Labs, Martin Odersky Ecole Polytechnique Federale de Lausanne Link to publication File Attached | ||
11:15 22mTalk | Confined Gradual Typing OOPSLA Esteban Allende , Johan Fabry University of Chile, Ronald Garcia University of British Columbia, Éric Tanter University of Chile Link to publication | ||
11:37 22mTalk | Refactoring Java Generics by Inferring Wildcards, In Practice OOPSLA Link to publication File Attached |