Advisor
My advisor is Todd Millstein.
Research
In the field of Programming Languages I study ways to incorporate Executable Specifications and Declarative Programming within the mainstream languages. More generally, I am interested in applying Decision Procedures, and Constraint Solvers in performing Static and Dynamic Program Analyses: Verification, Synthesis, and Program Repair.
Projects
Plan B Falling Back on Executable Specifications
Automatic recovery from method failures by direct execution of specifications via a constraint solver
PBnJ: Implementation of Plan B in Java
PHPRepair Automated Repair of HTML Generation Errors in PHP Applications using String Constraint Solving
An automatic, dynamic, test-based approach to fix HTML generation bugs in PHP programs
Sketch# Specification-Based Program Sketching
Implementation of the Sketching program synthesis method on top of Spec# specification language
JOHN An educational programming language integrating Automated Planning
Project Wiki
Publications
Automated Repair of HTML Generation Errors in PHP Applications using String Constraint Solving
Hesam Samimi, Max Schaefer, Shay Artzi, Todd Millstein, Frank Tip, Laurie Hendren
International Conference on Software Engineering 2012 (ICSE'12)
Specification-Based Sketching with Sketch#
Hesam Samimi, Kaushik Rajan
International Workshop on Formal Techniques for Java-like Programs 2011 (FTfJP'11) [pdf]
Falling Back on Executable Specifications
Hesam Samimi, Ei Darli Aung, Todd Millstein
European Conference on Object-Oriented Programming 2010 (ECOOP'10) [pdf]
Software