384 citations · 598 across the 20 of their papers we have counts for
22 papers
Epicure: Distilling Sequence Model Predictions into Patterns
Miltiadis Allamanis, Earl T. Barr
Most machine learning models predict a probability distribution over concrete outputs and struggle to accurately predict names over high entropy sequence distributions. Here, we ex…
Software Product Line Engineering via Software Transplantation
Leandro O. Souza, Earl T. Barr, Justyna Petke +2
For companies producing related products, a Software Product Line (SPL) is a software reuse method that improves time-to-market and software quality, achieving substantial cost red…
Automatic Semantic Augmentation of Language Model Prompts (for Code Summarization)
Toufique Ahmed, Kunal Suresh Pai, Premkumar Devanbu +1
Large Language Models (LLM) are a new class of computation engines, "programmed" via prompt engineering. We are still learning how to best "program" these LLMs to help developers.…
Is Surprisal in Issue Trackers Actionable?
James Caddy, Markus Wagner, Christoph Treude +2
Background. From information theory, surprisal is a measurement of how unexpected an event is. Statistical language models provide a probabilistic approximation of natural language…
Typilus: Neural Type Hints
Miltiadis Allamanis, Earl T. Barr, Soline Ducousso +1
Type inference over partial contexts in dynamically typed languages is challenging. In this work, we present a graph neural network model that predicts types by probabilistically r…
OptTyper: Probabilistic Type Inference by Optimising Logical and Natural Constraints
Irene Vlassi Pandi, Earl T. Barr, Andrew D. Gordon +1
We present a new approach to the type inference problem for dynamic languages. Our goal is to combine \emph{logical} constraints, that is, deterministic information from a type sys…
Sub-Turing Islands in the Wild
Earl T. Barr, David W. Binkley, Mark Harman +1
Recently, there has been growing debate as to whether or not static analysis can be truly sound. In spite of this concern, research on techniques seeking to at least partially answ…
Model Validation Using Mutated Training Labels: An Exploratory Study
Jie M. Zhang, Mark Harman, Benjamin Guedj +2
We introduce an exploratory study on Mutation Validation (MV), a model validation method using mutated training labels for supervised learning. MV mutates training data labels, ret…
SafeStrings: Representing Strings as Structured Data
David Kelly, Mark Marron, David Clark +1
Strings are ubiquitous in code. Not all strings are created equal, some contain structure that makes them incompatible with other strings. CSS units are an obvious example. Worse,…
Automated Fix Detection Given Flaky Tests
David Landsberg, Earl Barr
Research Proposal in Automated Fix Detection
Doric: Foundations for Statistical Fault Localisation
David Landsberg, Earl Barr
To fix a software bug, you must first find it. As software grows in size and complexity, finding bugs is becoming harder. To solve this problem, measures have been developed to ran…
Indexing Operators to Extend the Reach of Symbolic Execution
Earl T. Barr, David Clark, Mark Harman +1
Traditional program analysis analyses a program language, that is, all programs that can be written in the language. There is a difference, however, between all possible programs t…
Deep Learning to Detect Redundant Method Comments
Annie Louis, Santanu Kumar Dash, Earl T. Barr +1
Comments in software are critical for maintenance and reuse. But apart from prescriptive advice, there is little practical support or quantitative understanding of what makes a com…
A Survey of Machine Learning for Big Code and Naturalness
Miltiadis Allamanis, Earl T. Barr, Premkumar Devanbu +1
Research at the intersection of machine learning, programming languages, and software engineering has recently taken important steps in proposing learnable probabilistic models of…
Darwinian Data Structure Selection
Michail Basios, Lingbo Li, Fan Wu +2
Data structure selection and tuning is laborious but can vastly improve an application's performance and memory footprint. Some data structures share a common interface and enjoy m…
Learning Python Code Suggestion with a Sparse Pointer Network
Avishkar Bhoopchand, Tim Rocktäschel, Earl Barr +1
To enhance developer productivity, all modern integrated development environments (IDEs) include code suggestion functionality that proposes likely next tokens at the cursor. While…
Tailored Mutants Fit Bugs Better
Miltiadis Allamanis, Earl T. Barr, René Just +1
Mutation analysis measures test suite adequacy, the degree to which a test suite detects seeded faults: one test suite is better than another if it detects more mutants. Mutation a…
ITect: Scalable Information Theoretic Similarity for Malware Detection
Sukriti Bhattacharya, Hector D. Menendez, Earl Barr +1
Malware creators have been getting their way for too long now. String-based similarity measures can leverage ground truth in a scalable way and can operate at a level of abstractio…
Detecting Malware with Information Complexity
Nadia Alshahwan, Earl T. Barr, David Clark +1
This work focuses on a specific front of the malware detection arms-race, namely the detection of persistent, disk-resident malware. We exploit normalised compression distance (NCD…
Casper: Debugging Null Dereferences with Dynamic Causality Traces
Benoit Cornu, Earl T. Barr, Lionel Seinturier +1
Fixing a software error requires understanding its root cause. In this paper, we introduce ''causality traces'', crafted execution traces augmented with the information needed to r…
On the Lexical Distinguishability of Source Code
Martin Velez, Dong Qiu, You Zhou +2
Natural language is robust against noise. The meaning of many sentences survives the loss of words, sometimes many of them. Some words in a sentence, however, cannot be lost withou…
Learning Natural Coding Conventions
Miltiadis Allamanis, Earl T. Barr, Christian Bird +1
Every programmer has a characteristic style, ranging from preferences about identifier naming to preferences about object relationships and design patterns. Coding conventions defi…