Shipwright: A Human-in-the-Loop System for Dockerfile Repair

Jordan HenkelDenini SilvaLeopoldo TeixeiraMarcelo d'AmorimThomas Reps

* Denotes equal contributions. Shipwright is a human-in-the-loop system for automated repair of broken Dockerfiles. We were able to use Shipwright to submit 45 pull requests with a 42.2% acceptance rate.

Learning from, Understanding, and Supporting DevOps Artifacts for Docker

Jordan HenkelChristian BirdShuvendu K. LahiriThomas Reps

A toolset for advanced Dockerfile parsing, Dockerfile rule mining, and rule-based static analysis of Dockerfiles. This paper seeks to improve the support for Docker (and, more generally, DevOps artifacts) by taking the first steps toward automated rule mining in this domain.

pdfacmarXivdatasetsvideo

A Dataset of Dockerfiles

Jordan HenkelChristian BirdShuvendu K. LahiriThomas Reps

Expanded details on the dataset of 178,000 unique Dockerfiles used in "Learning from, Understanding, and Supporting DevOps Artifacts for Docker." In addition to a discussion of the dataset, this workshop paper features example usages and schemas for all of the unique representations we took the data through to achieve rule mining and static checking.

pdfacmarXivdatasetsvideo
Available on Arxiv #Arxiv Papers

Semantic Robustness of Models of Source Code

Goutham Ramakrishnan*Jordan Henkel*Zi WangAws AlbarghouthiSomesh JhaThomas Reps

* Denotes equal contributions. A framework for testing the robustness of models of source code against sequences semantics-preserving transformations. Additionally, tools and results related to training robust models of code (using adversarial training) and gathering insights into what trained models have learned (via attribution).

pdfarXiv
Available on Arxiv #Arxiv Papers

Enabling Open-World Specification Mining via Unsupervised Learning

Jordan HenkelShuvendu K. LahiriBen LiblitThomas Reps

A framework for mining specifications and usage patterns without the aid of rule templates, user-directed feedback, or predefined API surfaces. This paper leverages both learned embeddings and traditional co-occurrence statistics to disentangle trace-based data.

pdfarXiv

Code Vectors: Understanding Programs Through Embedded Abstracted Symbolic Traces

Jordan HenkelShuvendu K. LahiriBen LiblitThomas Reps

A novel technique for embedding semantically rich program artifacts. This paper explores how to combine sophisticated program analysis (in the form of lightweight symbolic execution) with off-the-shelf machine learning.

pdfacmarXivdatasets