The Pliny project aims to develop a family of systems for automatically detecting and fixing errors in programs, and synthesizing reliable code from high-level specifications. A unique feature of Pliny is that it aims to achieve these tasks using knowledge hidden in Big Code, i.e., large corpora of existing software. Programmers rarely write code in a vacuum. An API that they want to use will likely have been used in thousands of other programs; a script that they want to write can likely reuse some of the components present in existing code. Pliny utilizes this insight by mining software repositories for information of potential use to programmers. The extracted information is stored in a special kind of statistical database, and then used in algorithms for computer-aided programming. For example, learned patterns of API usage are used to detect and fix errors a programmer's use of an API, and mined components are stitched together to produce executable code.
Pliny is a collaboration between Rice University, University of Texas at Austin, University of Wisconsin, and Grammatech, Inc., and is funded under the DARPA MUSE program.