  In many common scenarios, programmers need to implement functionality that is
already provided by some third party library. This paper presents a tool called
Hunter that facilitates code reuse by finding relevant methods in large code
bases and automatically synthesizing any necessary wrapper code. The key
technical idea underlying our approach is to use types to both improve search
results and guide synthesis. Specifically, our method computes similarity
metrics between types and uses this information to solve an integer linear
programming (ILP) problem in which the objective is to minimize the cost of
synthesis. We have implemented Hunter as an Eclipse plug-in and evaluate it by
(a) comparing it against S6, a state-of-the-art code reuse tool, and (b)
performing a user study. Our evaluation shows that Hunter compares favorably
with S6 and significantly increases programmer productivity.
