DLS 2019
Sun 20 - Fri 25 October 2019 Athens, Greece
co-located with SPLASH 2019
Sun 20 Oct 2019 12:00 - 12:30 at Room 2A - Types and Tools Chair(s): Nick Papoulias

Gradual typing enables programmers to combine static and dynamic typing in the same language. However, ensuring a sound interaction between the static and dynamic parts can incur significant runtime cost. In this paper, we analyze the performance of the transient design for gradual typing as implemented in Reticulated Python, a gradually typed variant of Python. The transient approach inserts lightweight checks throughout a program rather than installing proxies on higher order values. We show that, when running using CPython as a host for Reticulated Python, performance de- creases as programs evolve from dynamic to static types, up to a 6× slowdown compared to equivalent Python programs.

To reduce this overhead, we design a static analysis and optimization that removes redundant runtime checks. The optimization employs a static type inference algorithm that solves traditional subtyping constraints and also a new kind of check constraint. We evaluate the resulting performance and find that for many programs, the efficiency of partially typed programs is close to their untyped counterparts, removing most of the slowdown of transient checks. Finally, we measure the efficiency of Reticulated Python programs when running on PyPy, a tracing JIT. We find that combining PyPy with our type inference algorithm results in an average overhead of less than 1%.

Sun 20 Oct
Times are displayed in time zone: Beirut change

11:00 - 12:30: Types and ToolsDLS 2019 at Room 2A
Chair(s): Nick Papoulias Université Grenoble Alpes, France
11:00 - 11:30
Talk
First-class Dynamic TypesResearch Paper
DLS 2019
Michael HomerVictoria University of Wellington, Timothy JonesMontoux, James NobleVictoria University of Wellington
Pre-print Media Attached
11:30 - 12:00
Talk
Language-independent Development Environment Support For Dynamic RuntimesExperience Paper
DLS 2019
Daniel StolpeHasso-Plattner-Institut, Tim FelgentreffOracle Labs, Potsdam, Christian HumerOracle Labs, Switzerland, Fabio NiephausHasso Plattner Institute, University of Potsdam, Robert HirschfeldHasso-Plattner-Institut (HPI), Germany
Pre-print Media Attached
12:00 - 12:30
Talk
Optimizing and Evaluating Transient Gradual TypingResearch Paper
DLS 2019
Michael M. VitousekIndiana University, Jeremy G. SiekIndiana University, USA, Avik ChaudhuriFacebook, USA
Media Attached