Software engineers need to understand programs in order to effectively maintain them. The call graph, which presents the calling relationships between functions, is a useful repre...
Maintenance activities are made more difficult when pointers are heavily used in source code: the programmer needs to build a mental model of memory locations and of the way they ...
We present a multi-lingual type inference system for checking type safety across a foreign function interface. The goal of our system is to prevent foreign function calls from int...
Bug localization has attracted a lot of attention recently. Most existing methods focus on pinpointing a single statement or function call which is very likely to contain bugs. Al...
Hong Cheng, David Lo, Yang Zhou, Xiaoyin Wang, Xif...
Data structures define how values being computed are stored and accessed within programs. By recognizing what data structures are being used in an application, tools can make app...