Repository logo
Log in(current)
Repository logoMIT Open ScholarshipDSpace@MIT
  1. Home
  2. Computer Science and Artificial Intelligence Lab (CSAIL)
  3. CSAIL Digital Archive
  4. CSAIL Technical Reports (July 1, 2003 - present)
  5. HAMPI: A Solver for String Constraints

HAMPI: A Solver for String Constraints

Thumbnail Image
Download
Name

MIT-CSAIL-TR-2009-004.ps

Size

1.19 MB

Format

PostScript

Checksum (MD5)

45402038e0a2d637b317734cf9119a9e

Thumbnail Image
Download
Name

MIT-CSAIL-TR-2009-004.pdf

Size

298.21 KB

Format

Adobe PDF

Checksum (MD5)

25cbaa5190d230181c14c34ca9c0233a

Author(s)
Ernst, Michael D.
•
Kiezun, Adam
•
Ganesh, Vijay
•
Guo, Philip J.
•
Hooimeijer, Pieter
Advisor(s)
Michael Ernst
Date Issued
February 4, 2009
Series/Report no.
MIT-CSAIL-TR-2009-004
Abstract
Many automatic testing, analysis, and verification techniques for programs can be effectively reduced to a constraint-generation phase followed by a constraint-solving phase. This separation of concerns often leads to more effective and maintainable tools. The increasing efficiency of off-the-shelf constraint solvers makes this approach even more compelling. However, there are few, if any, effective and sufficiently expressive off-the-shelf solvers for string constraints generated by analysis techniques for string-manipulating programs. We designed and implemented Hampi, a solver for string constraints over bounded string variables. Hampi constraints express membership in regular languages and bounded context-free languages. Hampi constraints may contain context-free-language definitions, regular-language definitions and operations, and the membership predicate. Given a set of constraints, Hampi outputs a string that satisfies all the constraints, or reports that the constraints are unsatisfiable. Hampi is expressive and efficient, and can be successfully applied to testing and analysis of real programs. Our experiments use Hampi in: static and dynamic analyses for finding SQL injection vulnerabilities in Web applications; automated bug finding in C programs using systematic testing; and compare Hampi with another string solver. Hampi's source code, documentation, and the experimental data are available at http://people.csail.mit.edu/akiezun/hampi.
Subjects
Constraint solvers
Automated testing
Persistent DSpace Link
http://hdl.handle.net/1721.1/44584
Repository logo
PrivacyPermissionsAccessibilityContact us
Repository logo
Notify us about copyright concerns.