Foundations and Trends® in Programming Languages > Vol 3 > Issue 4

Programming with “Big Code”

By Martin Vechev, ETH Zurich, Switzerland, martin.vechev@inf.ethz.ch | Eran Yahav, Technion, Israel, yahave@cs.technion.ac.il

 
Suggested Citation
Martin Vechev and Eran Yahav (2016), "Programming with “Big Code”", Foundations and Trends® in Programming Languages: Vol. 3: No. 4, pp 231-284. http://dx.doi.org/10.1561/2500000028

Publication Date: 29 Dec 2016
© 2016 M. Vechev and E. Yahav
 
Subjects
 

Free Preview:

Download extract

Share

Download article
In this article:
1. Introduction
2. Statistical Programming Systems
3. Example System: Statistical Code Completion
4. Conclusion
References

Abstract

The vast amount of code available on the web is increasing on a daily basis. Open-source hosting sites such as GitHub contain billions of lines of code. Community question-answering sites provide millions of code snippets with corresponding text and metadata. The amount of code available in executable binaries is even greater. Collectively, these increasing amounts of code have been referred to as “Big Code”. In this monograph, we cover some of the recent research trends on leveraging “Big Code” for performing various programming tasks that are difficult to accomplish with traditional techniques.

DOI:10.1561/2500000028
ISBN: 978-1-68083-230-3
68 pp. $55.00
Buy book (pb)
 
ISBN: 978-1-68083-231-0
68 pp. $130.00
Buy E-book (.pdf)
Table of contents:
1. Introduction
2. Statistical Programming Systems
3. Example System: Statistical Code Completion
4. Conclusion
References

Programming with “Big Code”

The vast amount of code available on the web is increasing daily. Open-source hosting sites such as GitHub contain billions of lines of code. Community question-answering sites provide millions of code snippets with corresponding text and metadata. The amount of code available in executable binaries is even greater. Collectively, these increasing amounts of code have been referred to as “Big Code”.

Programming with “Big Code” looks at some of the recent research trends on leveraging “Big Code” for performing various programming tasks that are difficult to accomplish with traditional techniques. It discusses several recent applications, describes the dimensions of the problem, and illustrates how each application and example system fits these dimensions. It then selects one of the applications (statistical code completion) that captures various aspects of the problem of learning from “Big Code” and illustrates each of these aspects in detail.

 
PGL-028