Program Inference and Regeneration via Active Learning
Software now plays a central role in numerous aspects of human society. Current software development practices involve significant developer effort in all phases of the software life cycle, including the development of new software, detection and elimination of defects and security vulnerabilities i...
Main Author: | |
---|---|
Other Authors: | |
Format: | Thesis |
Published: |
Massachusetts Institute of Technology
2023
|
Online Access: | https://hdl.handle.net/1721.1/147330 |
_version_ | 1811095747929571328 |
---|---|
author | Shen, Jiasi |
author2 | Rinard, Martin C. |
author_facet | Rinard, Martin C. Shen, Jiasi |
author_sort | Shen, Jiasi |
collection | MIT |
description | Software now plays a central role in numerous aspects of human society. Current software development practices involve significant developer effort in all phases of the software life cycle, including the development of new software, detection and elimination of defects and security vulnerabilities in existing software, maintenance of legacy software, and integration of existing software into more contexts, with the quality of the resulting software still leaving much to be desired. The goal of my research is to improve software quality and reduce costs by automating tasks that currently require substantial manual engineering effort.
I present a novel approach for program inference and regeneration, which takes an existing program, learns its core functionality as a black box, builds a model that captures this functionality, and uses the model to generate a new program. The new program delivers the same core functionality but is potentially augmented or transformed to eliminate defects, systematically introduce safety or security checks, or operate successfully in different environments.
This research enables the rejuvenation and retargeting of existing software and provides a powerful way for developers to express program functionality that adapts flexibly to a variety of contexts. For instance, one benefit is enabling new development methodologies that work with simple prototype implementations as specifications, then use regeneration to automatically obtain clean, efficient, and secure implementations. Another benefit is automatically improving program comprehension and producing cleaner code, making the code more transparent and the developers more productive. A third benefit is automatically extracting the human knowledge crystallized and encapsulated in legacy software systems and retargeting it to new languages and platforms, including languages and platforms that provide more powerful features.
In this thesis, I present two systems that implement this approach for database-backed programs. |
first_indexed | 2024-09-23T16:26:42Z |
format | Thesis |
id | mit-1721.1/147330 |
institution | Massachusetts Institute of Technology |
last_indexed | 2024-09-23T16:26:42Z |
publishDate | 2023 |
publisher | Massachusetts Institute of Technology |
record_format | dspace |
spelling | mit-1721.1/1473302023-01-20T03:03:30Z Program Inference and Regeneration via Active Learning Shen, Jiasi Rinard, Martin C. Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science Software now plays a central role in numerous aspects of human society. Current software development practices involve significant developer effort in all phases of the software life cycle, including the development of new software, detection and elimination of defects and security vulnerabilities in existing software, maintenance of legacy software, and integration of existing software into more contexts, with the quality of the resulting software still leaving much to be desired. The goal of my research is to improve software quality and reduce costs by automating tasks that currently require substantial manual engineering effort. I present a novel approach for program inference and regeneration, which takes an existing program, learns its core functionality as a black box, builds a model that captures this functionality, and uses the model to generate a new program. The new program delivers the same core functionality but is potentially augmented or transformed to eliminate defects, systematically introduce safety or security checks, or operate successfully in different environments. This research enables the rejuvenation and retargeting of existing software and provides a powerful way for developers to express program functionality that adapts flexibly to a variety of contexts. For instance, one benefit is enabling new development methodologies that work with simple prototype implementations as specifications, then use regeneration to automatically obtain clean, efficient, and secure implementations. Another benefit is automatically improving program comprehension and producing cleaner code, making the code more transparent and the developers more productive. A third benefit is automatically extracting the human knowledge crystallized and encapsulated in legacy software systems and retargeting it to new languages and platforms, including languages and platforms that provide more powerful features. In this thesis, I present two systems that implement this approach for database-backed programs. Ph.D. 2023-01-19T18:45:54Z 2023-01-19T18:45:54Z 2022-09 2022-10-19T19:10:17.835Z Thesis https://hdl.handle.net/1721.1/147330 In Copyright - Educational Use Permitted Copyright MIT http://rightsstatements.org/page/InC-EDU/1.0/ application/pdf Massachusetts Institute of Technology |
spellingShingle | Shen, Jiasi Program Inference and Regeneration via Active Learning |
title | Program Inference and Regeneration via Active Learning |
title_full | Program Inference and Regeneration via Active Learning |
title_fullStr | Program Inference and Regeneration via Active Learning |
title_full_unstemmed | Program Inference and Regeneration via Active Learning |
title_short | Program Inference and Regeneration via Active Learning |
title_sort | program inference and regeneration via active learning |
url | https://hdl.handle.net/1721.1/147330 |
work_keys_str_mv | AT shenjiasi programinferenceandregenerationviaactivelearning |