作者: Veselin Raychev , Martin Vechev , Andreas Krause
关键词:
摘要: We present a new approach for predicting program properties from massive codebases (aka "Big Code"). Our first learns probabilistic model existing data and then uses this to predict of new, unseen programs. The key idea our work is transform the input into representation which allows us phrase problem inferring as structured prediction in machine learning. This formulation enables leverage powerful graphical models such conditional random fields (CRFs) order perform joint properties. As an example approach, we built scalable engine called JSNice solving two kinds problems context JavaScript: (syntactic) names identifiers (semantic) type annotations variables. Experimentally, predicts correct 63% name its annotation predictions are 81% cases. In week since release, was used by more than 30,000 developers only few months has become popular tool JavaScript developer community. By formulating showing how both learning inference context, opens up possibilities attacking wide range difficult Code" including invariant generation, decompilation, synthesis others.