Tue 27 Oct 2015 15:30 - 15:54 at Grand Station 3 - Session 4, Empirical Studies

Following the increased popularity of dynamic languages and their increased use in critical software, there have been many proposals to retrofit static type system to these languages to improve possibilities to catch bugs and improve performance. A key question for any type system is whether the types should be structural, for more expressiveness, or nominal, to carry more meaning for the programmer. For retrofitted type systems, it seems the current trend is using structural types. This paper attempts to answer the question to what extent this extra expressiveness is needed, and how the possible polymorphism in dynamic code is used in practise. We study polymorphism in 36 real-world open source Python programs and approximate to what extent nominal and structural types could be used to type these programs. The study is based on collecting traces from multiple runs of the programs and analysing the polymorphic degrees of targets at more than 7 million call-sites. Our results show that while polymorphism is used in all pro- grams, the programs are to a great extent monomorphic. The poly- morphism found is evenly distributed across libraries and program- specific code and occur both during program start-up and normal execution. Most programs contain a few “megamorphic” call-sites where receiver types vary widely. The non-monomorphic parts of the programs can to some extent be typed with nominal or structural types, but none of the approaches can type entire programs.

Tue 27 Oct

Displayed time zone: Eastern Time (US & Canada) change

15:30 - 17:30
Session 4, Empirical StudiesDLS at Grand Station 3
15:30
24m
Talk
Measuring Polymorphism in Python Programs
DLS
Beatrice Åkerblom Stockholm University, Tobias Wrigstad Uppsala University
15:54
24m
Talk
Tracking Down Performance Variation Against Source Code Evolution
DLS
Juan Pablo Sandoval Alcocer Universidad Católica Boliviana San Pablo, Alexandre Bergel
16:18
24m
Talk
Server-Side Type Profiling for Optimizing Client-Side JavaScript Engines
DLS
Madhukar Kedlaya University of California, Santa Barbara, Behnam Robatmili Qualcomm Research, Ben Hardekopf UC Santa Barbara
16:42
24m
Talk
An Empirical Investigation of the Effects of Type Systems and Code Completion on API Usability using TypeScript and JavaScript in MS Visual Studio
DLS
Lars Fischer University of Duisburg-Essen, Essen, Germany, Stefan Hanenberg University of Duisburg-Essen
17:06
24m
Talk
Access Control to Reflection with Object Ownership
DLS
Camille Teruel INRIA, Stéphane Ducasse INRIA, France, Damien Cassou Lille 1 University, Marcus Denker INRIA Lille