License: Creative Commons Attribution 3.0 Unported license (CC BY 3.0)
When quoting this document, please refer to the following
DOI: 10.4230/LIPIcs.SNAPL.2015.41
URN: urn:nbn:de:0030-drops-50152
Go to the corresponding LIPIcs Volume Portal

Bielik, Pavol ; Raychev, Veselin ; Vechev, Martin

Programming with "Big Code": Lessons, Techniques and Applications

5.pdf (0.5 MB)


Programming tools based on probabilistic models of massive codebases (aka "Big Code") promise to solve important programming tasks that were difficult or practically infeasible to address before. However, building such tools requires solving a number of hard problems at the intersection of programming languages, program analysis and machine learning.

In this paper we summarize some of our experiences and insights obtained by developing several such probabilistic systems over the last few years (some of these systems are regularly used by thousands of developers worldwide). We hope these observations can provide a guideline for others attempting to create such systems.

We also present a prediction approach we find suitable as a starting point for building probabilistic tools, and discuss a practical framework implementing this approach, called Nice2Predict. We release the Nice2Predict framework publicly - the framework can be immediately used as a basis for developing new probabilistic tools. Finally, we present programming applications that we believe will benefit from probabilistic models and should be investigated further.

BibTeX - Entry

  author =	{Pavol Bielik and Veselin Raychev and Martin Vechev},
  title =	{{Programming with "Big Code": Lessons, Techniques and Applications}},
  booktitle =	{1st Summit on Advances in Programming Languages (SNAPL 2015)},
  pages =	{41--50},
  series =	{Leibniz International Proceedings in Informatics (LIPIcs)},
  ISBN =	{978-3-939897-80-4},
  ISSN =	{1868-8969},
  year =	{2015},
  volume =	{32},
  editor =	{Thomas Ball and Rastislav Bodik and Shriram Krishnamurthi and Benjamin S. Lerner and Greg Morrisett},
  publisher =	{Schloss Dagstuhl--Leibniz-Zentrum fuer Informatik},
  address =	{Dagstuhl, Germany},
  URL =		{},
  URN =		{urn:nbn:de:0030-drops-50152},
  doi =		{10.4230/LIPIcs.SNAPL.2015.41},
  annote =	{Keywords: probabilistic tools, probabilistic inference and learning, program analysis, open-source software}

Keywords: probabilistic tools, probabilistic inference and learning, program analysis, open-source software
Collection: 1st Summit on Advances in Programming Languages (SNAPL 2015)
Issue Date: 2015
Date of publication: 30.04.2015

DROPS-Home | Fulltext Search | Imprint | Privacy Published by LZI