“…Previous work analyzes natural-language artifacts such as bug reports [6,14,31,34,38,39,46,54,64], comments [55,56], API documentation [37,67], identifier names [5,8] and mailing lists [38] for purposes such as detecting duplicate bug reports, identifying the appropriate developers to fix bugs, improving structure-field names, mining source code descriptions, etc. Recently, by leveraging the fact that programming language is likely to be repetitive and predictable, researchers [21] work on applying statistical language models to code to help software tasks, including code completion, concern location and software mining, etc.…”