Trace Typing: An Approach for Evaluating Retrofitted Type Systems
Recent years have seen growing interest in the retrofitting of type systems onto dynamically-typed programming languages, in order to improve type safety, programmer productivity, or performance. In such cases, type system developers must strike a delicate balance between disallowing popular coding patterns in order to keep the type system simple and intuitively appealing, or including them at the expense of additional complexity and effort. Thus far, the process for designing retrofitted type systems has been largely ad-hoc, because evaluating multiple variations of a type system on large bodies of existing code is a significant undertaking.
We present trace typing: a framework for automatically and quantitatively evaluating variations of a retrofitted type system on large code bases. The trace typing approach involves gathering traces of program executions, inferring types for instances of variables and expressions occurring in a trace, and merging types according to merge strategies that reflect specific (combinations of) choices in the source-level type system design space.
Thu 21 JulDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
13:45 - 15:00
Session 5Research Track at Auditorium Loyola
Chair(s): Kim Bruce Pomona College
|LJGS: Gradual Security Types for Object-Oriented Languages|
Luminous Fennell University of Freiburg, Germany, Peter Thiemann University of FreiburgLink to publication DOI Media Attached
|Lightweight session programming in Scala|
Alceste Scalas Imperial College London, Nobuko Yoshida Imperial College London, UKLink to publication DOI Media Attached
|Trace Typing: An Approach for Evaluating Retrofitted Type Systems|
Esben Andreasen Aarhus University, Colin Gordon Drexel University, Satish Chandra Samsung Research America, Manu Sridharan Samsung Research America, Frank Tip Samsung Research America, Koushik Sen University of California, BerkeleyLink to publication DOI Pre-print Media Attached