Synthesizing Software with AI and Formal Program Synthesis Methods

Una-May O’Reilly

As software proliferates and the need for it explodes, what methods contribute to improving our ability to write and repurpose code? To what extent can software be automatically engineered? Is it possible to describe a task to a software development tool instead of how to implement it? What if an existing code base was the starting point? To what extent is it possible to repurpose it? What tools, formalisms, training data, method hybridizations, and inventions are necessary or helpful?  You will learn how we are combining an AI-based approach based on stochastic search heuristics with formal program synthesis methods in the context of these questions.  You will contribute to a project with a goal to generate correct software based on a “what is needed” specification.


Contact to apply.
In the body of your email please include:  project of interest by name, relevant courses and grades, relevant experience, expected year of graduation. Attach your resume/CV

6.009 Fundamentals of Programming
6.031 Elements of Software Construction
6.033 Computer Systems Engineering

Project PI:
Una-May O’Reilly

Contact email:

Research areas:
Programming languages & Software Engineering

Interested? Apply Now!