Active learning for inference and regeneration of computer programs that store and retrieve data

As modern computation platforms become increasingly complex, their programming interfaces are increasingly difficult to use. This complexity is especially inappropriate given the relatively simple core functionality that many of the computations implement. We present a new approach for obtaining sof...

Full description

Bibliographic Details
Main Authors: Rinard, Martin C (Author), Shen, Jiasi (Author), Mangalick, Varun (Author)
Other Authors: Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory (Contributor), Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science (Contributor)
Format: Article
Language:English
Published: ACM Press, 2020-06-09T20:07:25Z.
Subjects:
Online Access:Get fulltext
LEADER 02099 am a22002053u 4500
001 125749
042 |a dc 
100 1 0 |a Rinard, Martin C  |e author 
100 1 0 |a Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory  |e contributor 
100 1 0 |a Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science  |e contributor 
700 1 0 |a Shen, Jiasi  |e author 
700 1 0 |a Mangalick, Varun  |e author 
245 0 0 |a Active learning for inference and regeneration of computer programs that store and retrieve data 
260 |b ACM Press,   |c 2020-06-09T20:07:25Z. 
856 |z Get fulltext  |u https://hdl.handle.net/1721.1/125749 
520 |a As modern computation platforms become increasingly complex, their programming interfaces are increasingly difficult to use. This complexity is especially inappropriate given the relatively simple core functionality that many of the computations implement. We present a new approach for obtaining software that executes on modern computing platforms with complex programming interfaces. Our approach starts with a simple seed program, written 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 finally automatically regenerates new code that implements the learned core functionality on the target computing platform. This regenerated code contains boilerplate code for the complex programming interfaces that the target computing platform presents. 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 effort required to obtain secure, robust software that executes on modern computing platforms. 
520 |a DARPA (Grant FA8650-15-C-7564) 
546 |a en 
655 7 |a Article 
773 |t Proceedings of the 2018 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software