A Database Workbench: an interface for mixed-initiative design space search
Edward Misback, Pavel Panchekha, Zachary Tatlock
Design space search
“Mixed-initiative”: computers and humans can both make or suggest moves collaboratively
Outline
My Background
How do we make working with programs easy?
What is Herbie?
What is Herbie missing?
What do we want to enable?
How does Herbie work? What is its “essence”?
(Spoiler: it’s not just one tool!)
End-to-End: Herbie as an Automated Space Search Tool
Herbie builds a database of candidate solutions as it searches the space of possible rewritings of an initial expression for the “best” rewriting.
What the user can see:
Herbie as a Sampling Tool
Herbie uniformly samples valid inputs for a given expression.
Herbie as a Calculation Tool
Herbie calculates the result of an expression on each input for a numeric representation (including an exact representation).
Herbie as a Visualization & Analysis Tool
Herbie visualizes the error across the domain for each variable in the inputs (and also computes the average error).
Pareto Herbie/“PHerbie”
Herbie as a Derivation Tool
Herbie tracks rewritings and shows the user the steps it took to get from the starting expression to the final expression.
We have a lot of tools. How can we make them into a workbench?
Building a workbench for _________
Building a workbench for expressions?
There are other types of things involved too, like the spec and sets of sampled inputs…
Inputs
Analysis (exacts, outputs, and errors)
Expression
Spec (including an interval, a precision, and other sampling config)
*
*
0 or more items from any of 0 or more other tables
Exactly one item from the table
Expression Generation config
= “an input sample is fully determined by a spec + a random seed”
Applying LP design principles
Applying LP design principles
(Wizard of Oz) Demo
How is this relevant to the FPBench community?