Program Boosting: Program Synthesis via Crowd-Sourcing

  • Robert A Cochran ,
  • Benjamin Livshits ,
  • David Molnar ,
  • ,
  • Ben Livshits

POPL 2015: 42nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages |

Published by ACM - Association for Computing Machinery

Publication

In this paper, we investigate an approach to program synthesis that is based on crowd-sourcing. With the help of crowd-sourcing, we aim to capture the “wisdom of the crowds” to find good if not perfect solutions to inherently tricky programming tasks, which elude even expert developers and lack an easy-to-formalize specification.

We propose an approach we call program boosting, which involves crowd-sourcing imperfect solutions to a difficult programming problem from developers and then blending these programs together in a way that improves their correctness.

We implement this approach in a system called CROWDB OOST and show in our experiments that interesting and highly non-trivial tasks such as writing regular expressions for URLs or email addresses can be effectively crowd-sourced. We demonstrate that carefully blending the crowd-sourced results together consistently produces a boost, yielding results that are better than any of the starting programs. Our experiments on 465 program pairs show consistent boosts in accuracy and demonstrate that program boosting can be performed at a relatively modest monetary cost.