Program Recognition in Synthesis

By: Michael B. James, Nadia Polikarpova

Published in PLATEAU 2021, 2021

Program synthesizers can offer a user many candidate snippets to fit a specification. How should a user decide which snippet is the right one for them? We introduce the problem of program recognition in the context of program sy... Read more

Digging for Fold: Synthesis-Aided API Discovery for Haskell

By: Michael B. James, Zheng Guo, Ziteng Wang, Shivani Doshi, Hila Peleg, Ranjit Jhala, Nadia Polikarpova

Published in OOPSLA 20, 2020

We present Hoogle+, a web-based API discovery tool for Haskell. A Hoogle+ user can specify a programming task using either a type, a set of input-output tests, or both. Given a specification, the tool returns a list of matching programs ... Read more

Download here

Program Synthesis by Type-Guided Abstraction Refinement

By: Zheng Guo, Michael B. James, David Justo, Jiaxiao Zhou, Ziteng Wang, Ranjit Jhala, Nadia Polikarpova

Published in Principles of Programming Languages 2020, 2019

We consider the problem of type-directed component based synthesis where, given a set of (typed) components and a query type, the goal is to synthesize a term that inhabits the query. Classical approaches based on proof search in intuiti... Read more

Download here