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...

Full description

Bibliographic Details
Main Author: Shen, Jiasi
Other Authors: Rinard, Martin C.
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