Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Pieter Hooimeijer

dblp:79/2779 · DBLP profile ↗
← Back
13ranked-venue papers
6as first author
0since 2021 · last 2019
0000-0001-5072-6481ORCID · corroborated

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 10 · 5 first-authorComputer networks · 2Security and privacy · 1 · 1 first-authorTheory of computation · 1

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
10 papers
Program analysis · 73% Software testing · 16% Empirical software engineering · 6%
Theoretical computer science
5 papers
Automated reasoning and model checking · 71% Automata and formal languages · 29%
Computer networks
2 papers
Internet of things and sensor networks · 100%
Network and information security
2 papers
Systems and software security · 64% Web and mobile security · 36%

Topics — the 22 heaviest of 23, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Program analysis › constraint solving
string constraint solving
0.962019
Theory and practice of string solvers (invited talk abstract) · ISSTA 2019
HAMPI: A solver for word equations over strings, regular expressions, and context-free grammars · ACM Trans. Softw. Eng. Methodol. 2012
HAMPI: A String Solver for Testing, Analysis and Vulnerability Detection · CAV 2011
Program analysis
constraint solving
0.632019
Theory and practice of string solvers (invited talk abstract) · ISSTA 2019
HAMPI: A solver for word equations over strings, regular expressions, and context-free grammars · ACM Trans. Softw. Eng. Methodol. 2012
HAMPI: a solver for string constraints · ISSTA 2009
Automated reasoning and model checking › constraint solving
string constraint solving
0.412019
Theory and practice of string solvers (invited talk abstract) · ISSTA 2019
Software testing
automated testing
0.112012
HAMPI: A solver for word equations over strings, regular expressions, and context-free grammars · ACM Trans. Softw. Eng. Methodol. 2012
Software testing › test input generation
concolic testing
0.112012
HAMPI: A solver for word equations over strings, regular expressions, and context-free grammars · ACM Trans. Softw. Eng. Methodol. 2012
Program analysis › data flow analysis › value analysis
string analysis
0.112012
Symbolic finite state transducers: algorithms and applications · POPL 2012
Automata and formal languages › transducers
finite-state transducers
0.112012
Symbolic finite state transducers: algorithms and applications · POPL 2012
Software testing
test input generation
0.112011
HAMPI: A String Solver for Testing, Analysis and Vulnerability Detection · CAV 2011
Internet of things and sensor networks
wireless sensor network
0.122009
Macrodebugging: global views of distributed program execution · SenSys 2009
MacroLab: a vector-based macroprogramming framework for cyber-physical systems · SenSys 2008
Automated reasoning and model checking
decision procedures
0.112010
Solving string constraints lazily · ASE 2010
Internet of things and sensor networks › wireless sensor network › sensor network programming
macroprogramming
0.112009
Macrodebugging: global views of distributed program execution · SenSys 2009
Automata and formal languages
regular languages
0.112009
A decision procedure for subset constraints over regular languages · PLDI 2009
Automated reasoning and model checking
satisfiability
0.112009
HAMPI: a solver for string constraints · ISSTA 2009
Embedded and real-time systems
cyber-physical system platforms
0.112008
MacroLab: a vector-based macroprogramming framework for cyber-physical systems · SenSys 2008
Empirical software engineering › mining software repositories
bug report analysis
0.112007
Modeling bug report quality · ASE 2007
Software maintenance and evolution
bug triage
0.112007
Modeling bug report quality · ASE 2007
Empirical software engineering
mining software repositories
0.112007
Modeling bug report quality · ASE 2007
Web and mobile security › web security › web vulnerability detection
SQL injection detection
0.012012
HAMPI: A solver for word equations over strings, regular expressions, and context-free grammars · ACM Trans. Softw. Eng. Methodol. 2012
Systems and software security
memory safety
0.012011
Fast and Precise Sanitizer Analysis with BEK · USENIX Security Symposium 2011
Systems and software security › memory safety
memory sanitizer
0.012011
Fast and Precise Sanitizer Analysis with BEK · USENIX Security Symposium 2011
Program verification › decision procedure
constraint solver
0.012009
A decision procedure for subset constraints over regular languages · PLDI 2009
Debugging and program repair › concurrent program debugging
distributed debugging
0.012009
Macrodebugging: global views of distributed program execution · SenSys 2009

Methods — techniques the papers use, named apart from their topics

constraint solving · 0.9string constraint solving · 0.3word equations · 0.3satisfiability modulo theories · 0.3context-free grammar · 0.3static analysis · 0.2BEK · 0.2lazy solving · 0.2breakpoint stepping · 0.2vector programming abstraction · 0.2deployment-specific code decomposition · 0.2regular expressions · 0.1regular expression · 0.1source-level debugging · 0.1decision procedure · 0.1
YearPublicationVenuePosition
2019 Theory and practice of string solvers (invited talk abstract)
abstract
The paper titled "Hampi: A Solver for String Constraints" was published in the proceedings of the International Symposium on Software Testing and Analysis (ISSTA) 2009, and has been selected to receive the ISSTA 2019 Impact Paper Award. The paper describes HAMPI, one of the first practical solver aimed at solving the satisfiability problem for a theory of string (word) equations, operations over strings, predicates over regular expressions and context-free grammars. HAMPI has been used widely to solve many software engineering and security problems, and has inspired considerable research on string solving algorithms and their applications.
Adam Kiezun, Philip J. Guo, Pieter Hooimeijer, Michael D. Ernst, Vijay Ganesh 0001
ISSTA3
2012 Symbolic finite state transducers: algorithms and applications
abstract
Finite automata and finite transducers are used in a wide range of applications in software engineering, from regular expressions to specification languages. We extend these classic objects with symbolic alphabets represented as parametric theories. Admitting potentially infinite alphabets makes this representation strictly more general and succinct than classical finite transducers and automata over strings. Despite this, the main operations, including composition, checking that a transducer is single-valued, and equivalence checking for single-valued symbolic finite transducers are effective given a decision procedure for the background theory. We provide novel algorithms for these operations and extend composition to symbolic transducers augmented with registers. Our base algorithms are unusual in that they are nonconstructive, therefore, we also supply a separate model generation algorithm that can quickly find counterexamples in the case two symbolic finite transducers are not equivalent. The algorithms give rise to a complete decidable algebra of symbolic transducers. Unlike previous work, we do not need any syntactic restriction of the formulas on the transitions, only a decision procedure. In practice we leverage recent advances in satisfiability modulo theory (SMT) solvers. We demonstrate our techniques on four case studies, covering a wide range of applications. Our techniques can synthesize string pre-images in excess of 8,000 bytes in roughly a minute, and we find that our new encodings significantly outperform previous techniques in succinctness and speed of analysis.
Margus Veanes, Pieter Hooimeijer, Benjamin Livshits, David Molnar, Nikolaj S. Bjørner
POPL2
2012 StrSolve: solving string constraints lazily
Pieter Hooimeijer, Westley Weimer
Autom. Softw. Eng.1
2012 HAMPI: A solver for word equations over strings, regular expressions, and context-free grammars
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 software reliability tools. The increasing efficiency of off-the-shelf constraint solvers makes this approach even more compelling. However, there are few effective and sufficiently expressive off-the-shelf solvers for string constraints generated by analysis of string-manipulating programs, so researchers end up implementing their own ad-hoc solvers. To fulfill this need, we designed and implemented Hampi, a solver for string constraints over bounded string variables. Users of Hampi specify constraints using regular expressions, context-free grammars, equality between string terms, and typical string operations such as concatenation and substring extraction. Hampi then finds a string that satisfies all the constraints or reports that the constraints are unsatisfiable. We demonstrate Hampi's expressiveness and efficiency by applying it to program analysis and automated testing. We used Hampi in static and dynamic analyses for finding SQL injection vulnerabilities in Web applications with hundreds of thousands of lines of code. We also used Hampi in the context of automated bug finding in C programs using dynamic systematic testing (also known as concolic testing). We then compared Hampi with another string solver, CFGAnalyzer, and show that Hampi is several times faster. Hampi's source code, documentation, and experimental data are available at http://people.csail.mit.edu/akiezun/hampi 1
Adam Kiezun, Vijay Ganesh 0001, Shay Artzi, Philip J. Guo, Pieter Hooimeijer, Michael D. Ernst
ACM Trans. Softw. Eng. Methodol.5
2011 HAMPI: A String Solver for Testing, Analysis and Vulnerability Detection
Vijay Ganesh 0001, Adam Kiezun, Shay Artzi, Philip J. Guo, Pieter Hooimeijer, Michael D. Ernst
CAV5
2011 Fast and Precise Sanitizer Analysis with BEK
Pieter Hooimeijer, Benjamin Livshits, David Molnar, Prateek Saxena, Margus Veanes
USENIX Security Symposium1
2011 An Evaluation of Automata Algorithms for String Analysis
Pieter Hooimeijer, Margus Veanes
VMCAI1
2010 Solving string constraints lazily
abstract
Decision procedures have long been a fixture in program analysis, and reasoning about string constraints is a key element in many program analyses and testing frameworks. Recent work on string analysis has focused on providing decision procedures that model string operations. Separating string analysis from its client applications has important and familiar benefits: it enables the independent improvement of string analysis tools and it saves client effort.
Pieter Hooimeijer, Westley Weimer
ASE1
2009 HAMPI: a solver for string constraints
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 effective and sufficiently expressive off-the-shelf solvers for string constraints generated by analysis techniques for string-manipulating programs.
Adam Kiezun, Vijay Ganesh 0001, Philip J. Guo, Pieter Hooimeijer, Michael D. Ernst
ISSTA4
2009 A decision procedure for subset constraints over regular languages
abstract
Reasoning about string variables, in particular program inputs, is an important aspect of many program analyses and testing frameworks. Program inputs invariably arrive as strings, and are often manipulated using high-level string operations such as equality checks, regular expression matching, and string concatenation. It is difficult to reason about these operations because they are not well-integrated into current constraint solvers.
Pieter Hooimeijer, Westley Weimer
PLDI1
2009 Macrodebugging: global views of distributed program execution
abstract
Creating and debugging programs for wireless embedded networks (WENs) is notoriously difficult. Macroprogramming is an emerging technology that aims to address this problem by providing high-level programming abstractions. We present MDB, the first system to support the debugging of macroprograms. MDB allows the user to set break-points and step through a macroprogram using a source-level debugging interface similar to GDB, a process we call macrodebugging. A key challenge of MDB is to step through a macroprogram in sequential order even though it executes on the network in a distributed, asynchronous manner. Besides allowing the user to view distributed state, MDB also provides the ability to search for bugs over the entire history of distributed states. Finally, MDB allows the user to make hypothetical changes to a macroprogram and to see the effect on distributed state without the need to redeploy, execute, and test the new code. We show that macrodebugging is both easy and efficient: MDB consumes few system resources and requires few user commands to find the cause of bugs. We also provide a lightweight version of MDB called MDB Lite that can be used during the deployment phase to reduce resource consumption while still eliminating the possibility of heisenbugs: changes in the manifestation of bugs caused by enabling or disabling the debugger.
Tamim I. Sookoor, Timothy W. Hnat, Pieter Hooimeijer, Westley Weimer, Kamin Whitehouse
SenSys3
2008 MacroLab: a vector-based macroprogramming framework for cyber-physical systems
abstract
We present a macroprogramming framework called MacroLab that offers a vector programming abstraction similar to Matlab for Cyber-Physical Systems (CPSs). The user writes a single program for the entire network using Matlab-like operations such as addition, find, and max. The framework executes these operations across the network in a distributed fashion, a centralized fashion, or something between the two - whichever is most efficient for the target deployment. We call this approach deployment-specific code decomposition (DSCD). MacroLab programs can be executed on mote-class hardware such as the Telos [24] motes. Our results indicate that MacroLab introduces almost no additional overhead in terms of message cost, power consumption, memory footprint, or CPU cycles over TinyOS
Timothy W. Hnat, Tamim I. Sookoor, Pieter Hooimeijer, Westley Weimer, Kamin Whitehouse
SenSys3
2007 Modeling bug report quality
abstract
Software developers spend a significant portion of their resources handling user-submitted bug reports. For software that is widely deployed, the number of bug reports typically outstrips the resources available to triage them. As a result, some reports may be dealt with too slowly or not at all.
Pieter Hooimeijer, Westley Weimer
ASE1