Current:

  • Genetic Programming for Automatic Program Repair
    In conjunction with our excellent coauthors at the University of New Mexico, we have developed a technique for automatic test-case-driven program repair using genetic algorithms. A paper on the initial work appeared in ICSE 2009. The genetic side of the party will appear in a paper in GECCO 2009. We are currently exploring the security implications of our technique in the context of a closed-loop repair system for security-critical vulnerabilities and of the effect of test-suite selection and optimization techniques on our runtime and success. When I return to Virginia in the fall, I intend to explore the utility of automatically-mined repair templates to increasing the range of vulnerabilities we can address.

Previous:

  • Specification Mining/Code Quality Metrics
  • I improved the accuracy of automatic specification mining of programs by making use of additional information available in the source code, related software engineering artifacts, and a collection of static analyses. This became my masters thesis. A paper on the subject appeared in TACAS 2009. I am working on a journal version of the work with additional analysis of the results, new comparative experiments, and a larger number of benchmarks.

Back-Burnered:

  • Automatic Variable Naming
  • Ray Buse and I hypothesize that we can automatically name a program's variables by looking at how they are used. We are working on a tool that automatically infers a reasonable set of variable names based on various code features; this might be particularly useful when applied to decompiled code, for example. In practice, it means I do a lot of annotating. This idea has been back-burnered while we figure out better ways to do/evaluate it

Undergrad:

  • Algebraic Type Isomorphisms
  • For my undergraduate thesis work, I implemented a system that coerces datatypes in SML code to take new, isomorphic types while remaining operationally sound. I still have the code somewhere if you'd like to see it.