• Publications
  • Influence
code2vec: learning distributed representations of code
We present a neural model for representing snippets of code as continuous distributed vectors (``code embeddings''). The main idea is to represent a code snippet as a single fixed-length code vector,Expand
  • 179
  • 40
  • PDF
Code completion with statistical language models
We address the problem of synthesizing code completions for programs using APIs. Given a program with holes, we synthesize completions for holes with the most likely sequences of method calls. OurExpand
  • 344
  • 26
  • PDF
Effective typestate verification in the presence of aliasing
This paper addresses the challenge of sound typestate verification, with acceptable precision, for real-world Java programs. We present a novel framework for verification of typestate properties,Expand
  • 239
  • 26
  • PDF
On the Practical Computational Power of Finite Precision RNNs for Language Recognition
While Recurrent Neural Networks (RNNs) are famously known to be Turing complete, this relies on infinite precision in the states and unbounded computation time. We consider the case of RNNs withExpand
  • 93
  • 20
  • PDF
code2seq: Generating Sequences from Structured Representations of Code
The ability to generate natural language sequences from source code snippets has a variety of applications such as code summarization, documentation, and retrieval. Sequence-to-sequence (seq2seq)Expand
  • 108
  • 18
  • PDF
Tracelet-based code search in executables
We address the problem of code search in executables. Given a function in binary form and a large code base, our goal is to statically find similar functions in the code base. Towards this end, weExpand
  • 80
  • 16
  • PDF
Practical concurrent binary search trees via logical ordering
We present practical, concurrent binary search tree (BST) algorithms that explicitly maintain logical ordering information in the data structure, permitting clean separation from its physical treeExpand
  • 72
  • 12
  • PDF
Extracting Automata from Recurrent Neural Networks Using Queries and Counterexamples
We address the problem of extracting an automaton from a trained recurrent neural network (RNN). We present a novel algorithm that uses exact learning and abstract interpretation to perform efficientExpand
  • 79
  • 11
  • PDF
Chameleon: adaptive selection of collections
Languages such as Java and C#, as well as scripting languages like Python, and Ruby, make extensive use of Collection classes. A collection implementation represents a fixed choice in the dimensionsExpand
  • 106
  • 10
  • PDF
Verifying linearizability with hindsight
We present a proof of safety and linearizability of a highly-concurrent optimistic set algorithm. The key step in our proof is the Hindsight Lemma, which allows a thread to infer the existence of aExpand
  • 64
  • 10
  • PDF