Rapid Development of Flexible and Efficient Dynamic Program Analysis Tools