Inference and Regeneration of Programs that Store and Retrieve Data


As modern computation platforms become increasingly complex, their programming interfaces are increasingly dicult to use. Œis complexity is especially inappropriate given the relatively simple core functionality that many of the computations implement. We present a new approach for obtaining so‰ware that executes on modern computing platforms with complex programming interfaces. Our approach starts with a simple seed program, wriŠen in the language of the developer’s choice, that implements the desired core functionality. It then systematically generates inputs and observes the resulting outputs to learn the core functionality. It €nally automatically regenerates new code that implements the learned core functionality on the target computing platform. Œis regenerated code contains both (a) boilerplate code for the complex programming interfaces that the target computing platform presents and (b) systematic error and vulnerability checking code that makes the new implementations robust and secure. By providing a productive new mechanism for capturing and encapsulating knowledge about how to use modern complex interfaces, this new approach promises to greatly reduce the developer e‚ort required to obtain secure, robust so‰ware that executes on modern computing platforms.

8 Figures and Tables

Cite this paper

@inproceedings{Rinard2017InferenceAR, title={Inference and Regeneration of Programs that Store and Retrieve Data}, author={Martin C. Rinard and Jiasi Shen}, year={2017} }