Program Synthesis with Lightweight Abstractions

dc.contributor.advisorVan Horn, Daviden_US
dc.contributor.advisorFoster, Jeffrey Sen_US
dc.contributor.authorGuria, Sankha Narayanen_US
dc.contributor.departmentComputer Scienceen_US
dc.contributor.publisherDigital Repository at the University of Marylanden_US
dc.contributor.publisherUniversity of Maryland (College Park, Md.)en_US
dc.date.accessioned2023-10-06T05:48:39Z
dc.date.available2023-10-06T05:48:39Z
dc.date.issued2023en_US
dc.description.abstractThe world is reliant on software systems of unprecedented scale,while our methods for developing software still require programmers to manually write code with little help toward ensuring the software correctly meets its intent. Program synthesis, which automatically generates correct programs from specifications, offers a hopeful path forward. While program synthesis has had many successes in recent years, these have mostly been in restricted domains; synthesis has not yet proved useful for the practicing software engineer. This dissertation aims to advance program synthesis to meet thechallenges posed by the use of modern general-purpose languages, tools, and frameworks. This dissertation presents work towards an automated programming stack that uses specifications and expressive test cases written by programmers to scale synthesis tools to diverse domains. Specifically, it demonstrates that types enriched with effect descriptors inferred from test cases are a potent means to guide the synthesis of real Ruby on Rails web apps, and that types enriched with logical predicates can be used to synthesize verified privacy preserving queries. The key to both projects, and most other successful synthesis work, is the proper choice of abstraction for the problem domain at hand. Based on this insight, this dissertation contributes a new synthesis framework that takes as a parameter an abstract interpreter and automatically guides the search with it. This framework captures many different synthesis approaches from the literature, making it easier to build the synthesis tools of the future. The dissertation concludes with a vision for an automated programming stack that uses specifications and expressive test cases written by programmers to scale synthesis tools to diverse domains, moving us closer to a world in which correct programs are constructed automatically based on programmer's intent.en_US
dc.identifierhttps://doi.org/10.13016/dspace/txaj-5df6
dc.identifier.urihttp://hdl.handle.net/1903/30787
dc.language.isoenen_US
dc.subject.pqcontrolledComputer scienceen_US
dc.titleProgram Synthesis with Lightweight Abstractionsen_US
dc.typeDissertationen_US

Files

Original bundle

Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
Guria_umd_0117E_23543.pdf
Size:
2.34 MB
Format:
Adobe Portable Document Format