Westley Weimer
|
Associate Professor of Computer Science
423 Rice Hall
Office Hours: Wednesdays, 2:30-3:30
O: 434-924-1021, F: 434-982-2214
lastname@virginia.edu
|
Sabbatical, Calendar Year 2013
I am on sabbatical for Calendar Year 2013.
PhD Student Fellowship Opportunity
Mark Harman,
Peter O'Hearn and I
are beginning a joint project on search-based software testing, formal verification, and
automated
program repair. University College
London is offering a prestigious fully-funded student bursary
(a fellowship covering fees and living support for four years) starting
September 2013. Applications are due by March
31st. If you are applying to graduate school and are interested in at
least one of those areas, I strongly encourage you to apply for this
opportunity!
Teaching
- I am not teaching, and have no set office hours, during Spring or Fall
of 2013.
Free On-Line Education
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.
Current major research thrusts:
-
GenProg: Evoluationary Program Repair.
With Stephanie Forrest, we
have automatically generated repairs for legacy C programs using only
standard testcases (no code annotations or formal specifications). We use
genetic proramming and custom progrom representations and genetic operators
to generate program variants until we find one that passes all of the
testcases but does not demonstrate the error.
- The Analysis of Non-Executable Artifacts. Source code is not the
only artifact of the software development process. We propose to model,
analyze and generate program documentation, software readability, software
complexity, and run-time execution frequency.
- The Analysis of String Variables. We are interested in decision
procedures and formalisms to help statically predict that values of string
variables. We are interested in generating indicative
testcases for code injection vulnerabilities and
cross-site scripting, finding likely invariants or policies for string
variables, and verifying the soundness program transformations in the
presence of string variables.
- The Helix Project.
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. 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.
Previous research thrusts:
- Defect Reporting and Triage. Software maintenance is centered
around defect reports, but up to 35% of reports are duplicates or otherwise
invalid. We are interested in automatically filtering away invalid bug
reports, categorizing duplicate reports with their parents, and generally
reducing the effort required for software defect triage.
- User-Visible Errors in Web Applications. We propose to
reduce the costs of testing web applications by studying and modeling
errors in this domain. We are interested in
automatically determining if changes in web application output indicate
errors, and to model and measure the consumer-perceived severity of these
faults.
- The Echo Project.
With John
Knight, we are interested in a new 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.
Publications
-
Eric Schulte, Jonathan DiLorenzo, Stephanie Forrest and Westley Weimer:
Automated Repair of Binary and Assembly Programs for Cooperating Embedded
Devices. Architectural Support for Programming Languages and
Operating Systems (ASPLOS) 2013: to appear
-
Pieter Hooimeijer, Westley Weimer:
StrSolve: solving string constraints
lazily. Autom. Softw. Eng. 19(4): 531-559 (2012)
-
Zachary P. Fry, Bryan Landau, Westley Weimer:
A Human Study of Patch Maintainability.
International Symposium on Software Testing and Analysis (ISSTA)
2012: 177-187
[ project and datasets ]
-
Claire Le Goues, Westley Weimer, Stephanie Forrest:
Representations and Operators for Improving Evolutionary Software
Repair.
Genetic and Evolutionary Computing Conference (GECCO) 2012: 959-966
(bronze human-competitive award)
[ project and datasets ]
-
Claire Le Goues, Michael Dewey-Vogt, Stephanie Forrest, Westley Weimer:
A Systematic Study of Automated Program Repair: Fixing 55 out of 105 bugs for $8 Each.
International Conference on Software Engineering (ICSE) 2012: 3-13
[ project and datasets ]
-
Raymond P.L. Buse, Westley Weimer:
Synthesizing API Usage Examples.
International Conference on Software Engineering (ICSE) 2012:
782-792
-
ThanhVu Nguyen, Deepak Kapur, Westley Weimer, Stephanie Forrest:
Using Dynamic Analysis to Discover Polynomial and Array Invariants.
International Conference on Software Engineering (ICSE) 2012:
683-693
(distinguished paper award)
-
Claire Le Goues, ThanhVu Nguyen, Stephanie Forrest, Westley Weimer:
GenProg: A Generic Method for Automated Software Repair.
IEEE Trans. Software Engineering 38(1): 54-72 (January/February 2012)
(featured paper award)
[ project and datasets ]
-
Claire Le Goues, Westley Weimer:
Measuring Code Quality to Improve Specification Mining.
IEEE Trans. Software Engineering 38(1): 175-190 (January/February 2012)
-
Pitchaya Sitthi-amorn, Nicholas Modly, Westley Weimer, Jason Lawrence:
Genetic Programming for Shader Simplification. ACM Transactions on
Graphics (Proc. SIGGRAPH Asia) 30(6): 152 (2011)
[ Video (82 MB)
| Supplemental Results ]
-
Kinga Dobolyi, Elizabeth Soechting, Westley Weimer: Automating regression
testing using web-based application similarities. Journal on Software Tools
for Technology Transfer 13(2): 111-129 (2011)
-
Mauro Pezzè, Martin C. Rinard, Westley Weimer, Andreas Zeller:
Self-Repairing Programs (Dagstuhl Seminar 11062).
Dagstuhl Reports 1(2): 16-29 (2011)
-
Raymond P.L. Buse, Caitlin Sadowski, Westley Weimer:
Benefits and Barriers of User Evaluation in Software Engineering Research.
Conference on Object-Oriented Programming,
Systems, Languages, and Applications (OOPSLA) 2011: to appear
-
Claire Le Goues, Stephanie Forrest, Westley Weimer:
The Case for Software Evolution.
Foundations of Software Engineering Working Conference on the Future of
Software Engineering (FoSER) 2010: 205-209
-
Zachary P. Fry, Westley Weimer:
A Human Study of Fault Localization Accuracy.
International Conference on Software Maintenance (ICSM) 2010
[ project
| dataset ]
-
Pieter Hooimeijer, Westley Weimer:
Solving String Constraints Lazily.
Automated Software Engineering (ASE) 2010: 377-386
-
Raymond P.L. Buse, Westley Weimer:
Automatically Documenting Program Changes.
Automated Software Engineering (ASE) 2010: 33-42
[ project and web demo
|
command-line tool
|
(archive)
]
-
Eric Schulte, Stephanie Forrest, Westley Weimer:
Automated Program Repair through the Evolution of
Assembly Code.
Automated Software Engineering (ASE) Short Paper 2010: 313-316
[ project and datasets ]
-
Westley Weimer, Stephanie Forrest, Claire Le Goues, ThanhVu Nguyen:
Automatic Program Repair With Evolutionary
Computation.
Communications of the ACM Vol. 53 No. 5, May 2010, Pages 109-116.
[ project and datasets ]
-
Kinga Dobolyi, Westley Weimer.
Modeling Consumer-Perceived Web Application Fault Severities for
Testing.
International Symposium on Software Testing and Analysis (ISSTA) 2010: 97-106
[ dataset ]
-
Ethan Fast, Claire Le Goues, Stephanie Forrest, Westley Weimer:
Designing better fitness functions for automated program repair.
Genetic and Evolutionary Computing Conference (GECCO) 2010: 965-972
[ project and datasets ]
-
Kinga Dobolyi, Westley Weimer:
Addressing High Severity Faults in Web Application Testing.
IASTED International Conference on Software Engineering 2010:
677-075
-
Raymond P.L. Buse, Westley Weimer:
Learning a Metric for Code Readability.
IEEE Trans. Software Engineering Vol. 36 No. 4, 546-558, July/Aug
2010.
[ project
| dataset ]
-
Kinga Dobolyi, Westley Weimer. Harnessing Web-based Application
Similarities to Aid in Regression Testing. International Symposium
on Software Reliability Engineering (ISSRE) 2009: 71-80
-
Tamim Sookoor, Timothy Hnat, Pieter Hooimeijer, Westley Weimer, Kamin
Whitehouse:
Macrodebugging: Global Views of Distributed Program Execution.
Conference on Embedded Networked Sensor Systems (SenSys) 2009:
141-151
-
Elizabeth Soechting, Kinga Dobolyi, Westley Weimer.
Syntactic Regression Testing for Tree-Structured Output.
International Symposium on Web Systems Evolution (WSE) 2009
-
Stephanie Forrest, Westley Weimer, ThanhVu Nguyen, Claire Le Goues.
A Genetic Programming Approach to
Automated Software Repair.
Genetic and Evolutionary Computing Conference (GECCO) 2009: 947-954
(best paper award)
(gold human-competitive award)
[ project and datasets ]
-
ThanhVu Nguyen,
Westley Weimer,
Claire Le Goues,
Stephanie Forrest.
Using Execution Paths to Evolve Software Patches.
Workshop on Search-Based Software Testing (SBST) 2009
(best short paper award)
(best presentation award)
[ project and datasets ]
-
Xiang Yin, John Knight, Westley Weimer:
Exploiting Refactoring in Formal Verification.
International Conference on Dependable Systems and Networks (DSN) 2009: 53-62
-
Pieter Hooimeijer, Westley Weimer:
A Decision Procedure for Subset Constraints over Regular Languages.
Programming Languages Design and Implementation (PLDI) 2009: 188-198
[ project
| dataset ]
-
Claire Le Goues, Westley Weimer:
Specification Mining With Few False Positives.
Tools and Algorithms for the Construction and Analysis of Systems
(TACAS) 2009: 292-306
-
Westley Weimer, ThanVu Nguyen, Claire Le Goues, Stephanie Forrest:
Automatically Finding Patches Using Genetic Programming.
International Conference on Software Engineering (ICSE) 2009:
364-374
(distinguished paper award)
(IFIP TC2 Manfred Paul award)
[ project and datasets ]
-
Raymond P.L. Buse, Westley Weimer:
The Road Not Taken: Estimating Path Execution Frequency Statically.
International Conference on Software Engineering (ICSE) 2009:
144-154
-
Timothy Hnat, Tamim Sookoor, Pieter Hooimeijer, Westley Weimer, Kamin
Whitehouse:
MacroLab: A Framework for Deployment-Specific Code Decomposition.
Conference on Embedded Networked Sensor Systems (SenSys) 2008:
225-238
-
Kinga Dobolyi, Westley Weimer:
Changing Java's Semantics for Handling Null Pointer Exceptions.
International Symposium on Software Reliability Engineering (ISSRE)
2008: 47-56
-
Xiang Yin, John Knight, Elizabeth Nguyen, Westley Weimer:
Formal Verification By Reverse Synthesis.
Conference on Computer Safety, Reliability and Security (SAFECOMP)
2008: 305-319
-
Raymond P.L. Buse, Westley Weimer:
A Metric for Software Readability.
International Symposium on Software Testing and Analysis (ISSTA) 2008: 121-130
(best paper award)
[ project
| dataset ]
-
Raymond P.L. Buse, Westley Weimer:
Automatic Documentation Inference for Exceptions.
International Symposium on Software Testing and Analysis (ISSTA) 2008: 273-281
-
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: 52-61
-
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
[ linux 2.6.16.1 as a single merged C
file ]
- George C. Necula,
Scott McPeak,
Westley Weimer:
CCured: type-safe retrofitting of legacy code.
Symposium on Principles of Programming Languages (POPL) 2002: 128-139
(10-Year Most Influential Paper Award)
- 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
Emeritus and Honorary Research Group Members
Other Trivia
I have written an article explaining the CS job search process (e.g.,
teaching and research statements, interviews, offers) and my experiences
with it. It is available to grad students on request.
Others create wit and wisdom, I just collect it.
In my copious spare time, I play games and
do other things.
Our local bridge reference card is also
available.
Ever wanted a free unix utility to split a PDF file (e.g., break pages
10-20 of big.pdf out into small.pdf)? After searching through a bunch of
hideous non-working shareware utilities, I found that standard
ghostscript (gs) will do the job. Here's a free
unix shell script that invokes all of the right magic options for you.
I use this to split apart NSF grant proposals into the required separate
files (e.g., description here, references there).
Curious about the
secret lives of
PL profs? Indicative boring hiking photos are available.
A student rendering of me is available,
as is a fondant sculpture.
|
|