Digging for Fold: Synthesis-Aided API Discovery for Haskell
We present Hoogle+, a component-based synthesizer for Haskell that takes as input a specification in the form of a type, a set of input-output tests, or both, and returns a list of candidate programs composed of functions from popular Haskell libraries. Hoogle+ focuses on the end-to-end usability of synthesis: i.e., how to help programmers solve their tasks faster. Usability depends crucially on whether and how the programmer can specify their own intent and comprehend the tools results. Hoogle+ addresses the specification problem by allowing the user to specify goals via tests from which it automatically infers type signatures that facilitate rapid synthesis. Hoogle+ uses property based testing to ensure the user only sees _useful and _unique candidates, and generates example usages to illustrate the _functionality of each candidate to help the user comprehend their semantics in order to choose the right result. We evaluate the usability of Hoogle+, with a user study with 30 participants of varying Haskell proficiency,that shows that programmers generally solve tasks faster with Hoogle+, and that they were able to solve 50% more tasks when equipped with Hoogle+.
Wed 20 OctDisplayed time zone: Central Time (US & Canada) change
10:50 - 12:10 | OOPSLA 2020 Papers 1SIGPLAN Papers at Zurich G Chair(s): John Renner University of California at San Diego, USA | ||
10:50 15mTalk | Can Advanced Type Systems Be Usable? An Empirical Study of Ownership, Assets, and Typestate in Obsidian SIGPLAN Papers Michael Coblenz University of Maryland at College Park, Jonathan Aldrich Carnegie Mellon University, Brad A. Myers Carnegie Mellon University, Joshua Sunshine Carnegie Mellon University Link to publication | ||
11:05 15mTalk | Designing Types for R, Empirically SIGPLAN Papers Alexi Turcotte Northeastern University, Aviral Goel Northeastern University, Filip Křikava Czech Technical University, Jan Vitek Northeastern University; Czech Technical University | ||
11:20 15mTalk | Deductive Optimization of Relational Data Storage SIGPLAN Papers Jack Feser Massachusetts Institute of Technology, Sam Madden Massachusetts Institute of Technology, Nan Tang QCRI HBKU, Armando Solar-Lezama Massachusetts Institute of Technology | ||
11:35 15mTalk | Digging for Fold: Synthesis-Aided API Discovery for Haskell SIGPLAN Papers Michael B. James University of California at San Diego, Zheng Guo University of California, San Diego, Ziteng Wang University of California at San Diego, Shivani Doshi University of California at San Diego, Hila Peleg Technion, Ranjit Jhala University of California at San Diego, Nadia Polikarpova University of California at San Diego | ||
11:50 20mLive Q&A | Discussion, Questions and Answers SIGPLAN Papers |