ECOOP 2015
Sun 5 - Fri 10 July 2015 Prague, Czech Republic
Thu 9 Jul 2015 17:30 - 18:00 at Bohemia - Empirical Studies Chair(s): Jonathan Aldrich

Most popular programming languages support situations where a value of one type is converted into a value of another type without any explicit cast. Such implicit type conversions, or type coercions, are a highly controversial language feature. Proponents argue that type coercions enable writing concise code. Opponents argue that type coercions are error-prone and that they reduce the understandability of programs. This paper studies the use of type coercions in JavaScript, a language notorious for its widespread use of coercions. We dynamically analyze hundreds of programs, including real-world web applications and popular benchmark programs. We find that coercions are widely used (in 69.42% of all function executions) and that most coercions are likely to be harmless (99.65%). Furthermore, we identify a set of rarely occurring and potentially harmful coercions that safer subsets of JavaScript or future language designs may want to disallow. Our results suggest that type coercions are significantly less evil than commonly assumed and that analyses targeted at real-world JavaScript programs must consider coercions.

Thu 9 Jul

Displayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change

17:30 - 18:30
Empirical StudiesResearch Track at Bohemia
Chair(s): Jonathan Aldrich Carnegie Mellon University
17:30
30m
Talk
The Good, the Bad, and the Ugly: An Empirical Study of Implicit Type Conversions in JavaScript
Research Track
Michael Pradel TU Darmstadt, Koushik Sen University of California, Berkeley
18:00
30m
Talk
The Love/Hate Relationship with the C Preprocessor: An Interview Study
Research Track
Flavio Medeiros Federal University of Campina Grande, Christian Kästner Carnegie Mellon University, Márcio Ribeiro Federal University of Alagoas (UFAL), Sarah Nadi Technische Universität Darmstadt, Rohit Gheyi UFCG, Brazil