Speaker: Mark Santolucito, Yale University
Title: Program Synthesis for Software Systems
Program synthesis is the process of automatically generating code from specifications. This specification, describing the intended code behavior, can be either explicitly expressed as formulas, can be given in the form of illustrative examples, or it can be inferred from the context. There are decades of research into program synthesis, but only recently we have seen synthesis scale to industrial benchmarks. However, these applications have been limited to simple data transformations and automation tasks.
In this talk, I outline new directions in software synthesis targeted at increasing scalability and expressivity so that synthesis tools can assist in the development of real-world large software systems. With these advances, we have successfully synthesized systems such as mobile apps, self-driving car controllers, and embedded systems. We have also applied synthesis to novel domains, including configuration file analysis and digital signal processing. I conclude by describing future work on exploring usability of program synthesis and challenges we face when integrating synthesis into developer workflow.
Mark Santolucito is completing his PhD from Yale University under the supervision of Ruzica Piskac. Mark’s work has been focused on program synthesis and computer music. His research has been published at top conferences including, CAV, OOPSLA, CHI, and SIGCSE. His work has also been recognized by industry, including Amazon Web Services, where he interned and applied his work on configuration file analysis. He was invited to the Heidelberg Laureate Forum and has received the Advanced Graduate Leadership award from Yale. He helped found the computer science department at Geumgang University in South Korea, and has taught a Creative Embedded Systems course at Yale.
For directions, please access the Google map: https://goo.gl/maps/u4YuMzn3yYJX5EEt6