Onward! 2016
Sun 30 October - Fri 4 November 2016 Amsterdam, Netherlands
co-located with SPLASH 2016
Wed 2 Nov 2016 11:45 - 12:10 at Zürich 2 - Session 1 Chair(s): Emerson Murphy-Hill

Although dynamically typed languages allow developers to be more productive in writing source code, their lack of in- formation about types of variables is one of the main obstacles during program comprehension. Static type information helps developers to decrease software maintenance time. Inference of types of variables requires complex algorithms to avoid false positives or negatives. Their main aim is to shorten the list of possible types for a variable.
We have developed a couple of cheap heuristics that use easily accessible information about the presence of each class in the available source code to promote the correct type towards the top of the list of possible types for a variable.
Our evaluation of a proof-of-concept prototype, implemented in Pharo Smalltalk, shows that both for domain- specific types and standard libraries these heuristics tend to work well. The evaluated heuristics prove to be reasonably precise, promoting the correct types of a variable towards the top of the list in 50.67% up to 89.09% of cases on average, depending on the applied heuristic. The heuristic that has proved to be the best was compared with one existing type inference algorithm and the best heuristic yields significantly better results with less effort.

Wed 2 Nov

10:30 - 12:10: Onward! Papers - Session 1 at Zürich 2
Chair(s): Emerson Murphy-HillGoogle
onward-2016-papers10:30 - 10:55
Tim MarterUniversity of Duisburg-Essen, Paul BabuckeUniversity of Duisburg-Essen, Philipp LembkenUniversity of Duisburg-Essen, Stefan HanenbergUniversity of Duisburg-Essen
onward-2016-papers10:55 - 11:20
Nicolás CardozoUniversidad de los Andes
DOI Pre-print Media Attached
onward-2016-papers11:20 - 11:45
Kimio KuramitsuYokohama National University, Japan
onward-2016-papers11:45 - 12:10
Nevena MilojkovićUniversity of Bern, Oscar NierstraszUniversity of Bern, Switzerland