Type inference is convenient by allowing programmers to elide type-annotations, but this comes at the cost of often generating very confusing and opaque type error messages, which are of little help to fix type errors. Though there have been many successful attempts at making type-error messages better in the past thirty years, many classes of errors are still difficult to fix. In particular, current approaches still generate imprecise and uninformative error messages for type errors arising from errors in grouping constructs like parentheses and brackets. Worse, a recent study shows that these errors usually take more than 10 steps to fix and occur quite frequently (around 50% to 60% of all type-errors) in programs written by students learning functional programming. We call this class of errors, nonstructural errors.
We solve this problem by developing LEARNSKELL, a type error debugger that uses machine learning to help diagnose and deliver high quality error messages, for programs that contain nonstructural errors. While previous approaches usually report type errors on typing constraints or on the type level, LEARNSKELL generates suggestions on the expression level. We have performed a study on more than 1,000 ill-typed programs, and the result shows that LEARNSKELL is quite precise. It can capture 89% of nonstructural errors and locate the error cause with a precision of 65%/87% with the first 1/3 messages, respectively. This is several times more than the precision of state-of-the-art compilers and debuggers. We have also studied the performance of LEARNSKELL and found out that it scales to large programs.
Fri 27 OctDisplayed time zone: Tijuana, Baja California change
13:30 - 15:00 | |||
13:30 22mTalk | Deadlock Avoidance in Parallel Programs with Futures: Why Parallel Tasks Should Not Wait for Strangers OOPSLA Tiago Cogumbreiro Rice University, Rishi Surendran Rice University, USA, Francisco Martins LaSIGE, University of Lisbon, Vivek Sarkar Rice University, USA, Vasco T. Vasconcelos University of Lisbon, Portugal, Max Grossman Rice University, USA DOI | ||
13:52 22mTalk | Detecting Argument Selection Defects OOPSLA Andrew Rice University of Cambridge, UK, Eddie Aftandilian Google, Ciera Jaspan Google, Emily Johnston Google, Michael Pradel TU Darmstadt, Yulissa Arroyo-Paredes Columbia University, USA DOI | ||
14:15 22mTalk | How Type Errors Were Fixed and What Students Did? OOPSLA DOI | ||
14:37 22mTalk | Learning User Friendly Type-Error Messages OOPSLA Baijun Wu University of Louisiana at Lafayette, USA, John Peter Campora ULL Lafayette, Sheng Chen ULL Lafayette DOI |