Add your program analysis tools by creating a pull request here.
This is a list of usable tools that you can try and see the benefits of “Big Code”. Additionally, there are useful libraries useful when developing such tools.
JSNice
JSNice is a statistical predictor of variable names and type annotations for JavaScript developed at ETH Zurich. The tool learns a probabilistic type inference procedure for JavaScript.The learning, the type inference and the variable name reconstruction are framed as structured prediction using Conditional Random Fields. A general framework extensible to other languages and similar problems is available at nice2predict.org. Nice2Predict also includes visualization of the inference procedure.
[jsnice.org] [nice2predict.org] [paper @ POPL 2015] [developers' website] [github]
SLANG
SLANG is a code completion tool for Java that is intended to complete APIs. A tool trained on Android applications is available and evaluated on predicting what next Android API should be written in a program.[SLANG tool] [paper] [author website 1] [author website 2]
TASSAL: Tree-based Autofolding Software Summarization ALgorithm
TASSAL is a tool for the automatic summarization of source code using autofolding. Autofolding automatically creates a summary of a source code file by folding non-essential code and comment blocks.[GitHub Repository] [demo]
Naturalize
Naturalize is a tool that learns and suggest coding conventions (such as variable names) to improve the stylistic consistency of your codebase.[GitHub Repository] [Project page]
Libraries
See also useful libraries that may help you develop new tools.If you have a tool you would like to list here, head to the github page and create a pull request with your suggestion.