Using Data to Drive Programs