Advisor
My advisor is Todd Millstein.
Research
In the field of Programming Languages, I am interested in finding practical applications of Constraint Solvers, Decision Procedures, and Declarative Programming in Software Engineering in the context of development, testing, debugging, reliability, and education. More generally, I am interested in applying these tools in performing Static and Dynamic Program Analyses: Verification, Synthesis, and Program Repair. My longer-term goal is to contribute towards the design of programming language frameworks that allow programs to be specified in as elegant, declarative, and in domain-specific forms as possible, yet be practical enough to have impact in the software community.
Projects
MockSpecs Declarative Mocking
Mocking functionality and data using executable specifications and constraint solving for development and testing
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
CoopLangs Cooperating Languages
An integrated programming environment based on relations and an extensible set of hosted languages and constraint
solvers to solve problems in a domain-specific manner
JOHN An educational programming language integrating Automated Planning
Project Wiki
Publications
Declarative Mocking
Hesam Samimi, Rebecca Hicks, Ari Fogel, Todd Millstein
International Symposium on Software Testing and Analysis 2013 (ISSTA'13)
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) [pdf]
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]
Other
CamlQuiz OCaml Quiz with Instant Feedback
DollarAMeal.org Sharing the Joy of Deliciousness