Westley Weimer
Assistant Professor of Computer Science
219 Olsson Hall
Office Hours: Friday, 2:00-3:15
O: 434-924-1021, F: 434-982-2214
Scholarship Information
I run the annual Computing and
Communication Scholarship for Undergraduate Women. Applications are due
by June 30th.
Teaching
In Fall 2008 I will be teaching Graduate Programming Languages.
Previous courses and evaluations:
Research
My main research interest lies in advancing software quality by using both
static and dynamic programming language approaches. I am particularly
concerned with automatic or minimally-guided techniques that can scale and
be applied easily to large, existing programs. I believe that finding bugs
is insufficient, and I also work to help programmers address defects,
understand error reports, and program correctly. I am also interested in
designing languages and language features to help prevent errors.
I believe in using concepts from other areas of computer science to help
address software quality problems. I have had good luck combining elements
of databases (transactional concepts and analyzing clients), systems (OS
and networking), and machine learning (clustering and classification) with
my research.
- Along with Ray Buse I
work on projects related to humans, source code and PL approaches to
software engineering. We have focused on software readability metrics,
documentation inference for exceptions and static estimates of dynamic path
execution frequency.
- Pieter Hooimeijer and I
work on projects related to software model checking for concurrent and
distributed software, as well as the static analysis of string-valued
variables.
- With Claire Le Goues I
am working on extending current approaches to specification mining. My past
work has emphasized specification mining using knowledge of exceptions
situations as well as specification mining in a way that provably preserves
privacy among mutually-distrusting parties. We are currently focusing on
using software repository information, such as code churn and duplicate
code, to aid the mining process. Specification mining is somewhat akin to
learning the rules of English by analyzing a bunch of high school English
papers.
- My research group has ongoing projects about the defect reporting and
resolution process -- that is, bug reports. We have developed formal models
of bug report quality that can be used to predict a report's eventual
resolution. We have also used natural-language processing and machine
learning techniques to detect duplicate bug reports.
-
With
John Knight,
Dave Evans,
Jack Davidson, and
Anh Nguyen-Tuong I'm working on the
Helix project, a self-regenerative
software security architecture for defending computer systems against
well-funded and determined attackers. A fundamental problem with current
defenses is that they do not address the asymmetry between attackers and
defenders, changing computer systems only slowly and reactively in response
to attacks. In contrast, Helix will proactively monitor, adapt and
reconfigure software components to present attackers with an ever changing
system, thus dramatically raising the expertise and resources required for
an attack.
-
I'm involved in John
Knight's Echo
approach to software verification, which makes formal verification practical
by extracting high-level specifications from low-level annotations and by
transforming programs to make them easier to verify.
In my spare time, I'm interested in what happens before and after we use PL
techniques to find bugs in software. In particular, I care about what the
software should be doing, how we might design languages to make sure that
those things get done, and how we might fix the bugs that do get reported.
Publications
-
Xiang Yin, John Knight, Elizabeth Nguyen, Westley Weimer:
Formal Verification By Reverse Synthesis.
Conference on Computer Safety, Reliability and Security (SAFECOMP)
2008: to appear
-
Raymond P.L. Buse, Westley Weimer:
A Metric for Software Readability.
International Symposium on Software Testing and Analysis (ISSTA) 2008: to appear
-
Raymond P.L. Buse, Westley Weimer:
Automatic Documentation Inference for Exceptions.
International Symposium on Software Testing and Analysis (ISSTA) 2008: to appear
-
Adrienne Felt, Pieter Hooimeijer, David Evans, Westley Weimer:
Talking to strangers
without taking their candy: isolating proxied content.
Workshop on Social Network Systems (SocialNets) 2008: 25-30
-
Michael Boyer, Kevin Skadron, Westley Weimer:
Automated Dynamic Analysis of CUDA Programs.
Workshop on Software Tools for MultiCore Systems (STMCS) 2008
-
Nicholas Jalbert, Westley Weimer:
Automated Duplicate Detection for Bug Tracking Systems.
Conference on Dependable Systems and Networks (DSN) 2008: to appear
-
Westley Weimer, George C. Necula:
Exceptional Situations and Program Reliability.
ACM Trans. Program. Lang. Syst. 30(2): Article 8, 51 pages (2008)
-
Westley Weimer, Nina Mishra:
Privately Finding Specifications.
IEEE Trans. Software Engineering 34(1): 21-32 (2008)
- Pieter Hooimeijer,
Westley Weimer:
Modeling bug report quality.
Conference on Automated Software Engineering (ASE) 2007: 34-43
- Westley Weimer:
Exception-Handling Bugs in Java and a Language Extension to Avoid Them.
Advanced Topics in Exception Handling Techniques 2006: 22-41
- Westley Weimer:
Patches as better bug reports.
Conference on Generative Programming and Component Engineering (GPCE) 2006: 181-190
- Westley Weimer,
George C. Necula:
Mining Temporal Specifications for Error Detection.
Conference on Tools and Algorithms for the Construction and Analysis of
Systems (TACAS) 2005: 461-476
- George C. Necula,
Jeremy Condit,
Matthew Harren,
Scott McPeak,
Westley Weimer:
CCured: type-safe retrofitting of legacy software.
ACM Trans. Program. Lang. Syst. 27(3): 477-526 (2005)
- Westley Weimer,
George C. Necula:
Finding and preventing run-time error handling mistakes.
Conference on Object-Oriented Programming Systems, Languages and
Applications (OOPSLA) 2004: 419-431
- Jeremy Condit,
Matthew Harren,
Scott McPeak,
George C. Necula,
Westley Weimer:
CCured in the real world.
Conference on Programming Language Design and Implementation (PLDI) 2003: 232-244
- Thomas A. Henzinger,
Ranjit Jhala,
Rupak Majumdar,
George C. Necula,
Grégoire Sutre,
Westley Weimer:
Temporal-Safety Proofs for Systems Code.
Conference on Computer Aided Verification (CAV) 2002: 526-538
- George C. Necula,
Scott McPeak,
Shree Prakash Rahul,
Westley Weimer:
CIL: Intermediate Language and Tools for Analysis and Transformation of C Programs.
Conference on Compiler Construction (CC) 2002: 213-228
- George C. Necula,
Scott McPeak,
Westley Weimer:
CCured: type-safe retrofitting of legacy code.
Symposium on Principles of Programming Languages (POPL) 2002: 128-139
- Stephen Adams,
Thomas Ball,
Manuvir Das,
Sorin Lerner,
Sriram K. Rajamani,
Mark Seigle,
Westley Weimer:
Speeding Up Dataflow Analysis Using Flow-Insensitive Pointer Analysis.
Static Analysis Symposium (SAS) 2002: 230-246
- John Kubiatowicz,
David Bindel,
Yan Chen,
Steven E. Czerwinski,
Patrick R. Eaton,
Dennis Geels,
Ramakrishna Gummadi,
Sean C. Rhea,
Hakim Weatherspoon,
Westley Weimer,
Chris Wells,
Ben Y. Zhao:
OceanStore: An Architecture for Global-Scale Persistent Storage.
Conference on Architectural Support for Programming Languages and
Operating Systems (ASPLOS) 2000: 190-201
- Westley Weimer: Exceptional Situations and Program Reliability. PhD Thesis: University of California at Berkeley, Fall 2005.
Research Group Members and Theses
|