Learning to Blame: Localizing Novice Type Errors with Data-Driven Diagnosis
Localizing type errors is challenging in languages with global type inference, as the type checker must make assumptions about what the programmer intended to do. We introduce Nate, a data-driven approach to error localization based on supervised learning. Nate analyzes a large corpus of training data – pairs of ill-typed programs and their "fixed" versions – to automatically learn a model of where the error is most likely to be found. Given a new ill-typed program, Nate executes the model to generate a list of potential blame assignments ranked by likelihood. We evaluate Nate by comparing its precision to the state of the art on a set of over 5,000 ill-typed OCaml programs drawn from two instances of an introductory programming course. We show that when the top-ranked blame assignment is considered, Nate's data-driven model is able to correctly predict the exact sub-expression that should be changed 72% of the time, 28 points higher than OCaml and 16 points higher than the state-of-the-art SHErrLoc tool. Furthermore, Nate's accuracy surpasses 85% when we consider the top two locations and reaches 91% if we consider the top three.
Wed 25 Oct Times are displayed in time zone: Tijuana, Baja California change
13:30 - 13:52 Talk | Effective Interactive Resolution of Static Analysis Alarms OOPSLA Xin ZhangMassachusetts Institute of Technology, USA, Radu GrigoreUniversity of Kent, Xujie SiUniversity of Pennsylvania, Mayur NaikUniversity of Pennsylvania DOI | ||
13:52 - 14:15 Talk | Learning to Blame: Localizing Novice Type Errors with Data-Driven Diagnosis OOPSLA Eric SeidelUniversity of California at San Diego, USA, Huma SibghatUniversity of California at San Diego, USA, Kamalika ChaudhuriUniversity of California at San Diego, USA, Westley WeimerUniversity of Virginia, USA, Ranjit JhalaUniversity of California at San Diego, USA DOI | ||
14:15 - 14:37 Talk | Abridging Source Code OOPSLA Binhang YuanRice University, USA, Vijayaraghavan MuraliRice University, USA, Chris JermaineRice University DOI | ||
14:37 - 15:00 Talk | Evaluating and Improving Semistructured Merge OOPSLA Guilherme CavalcantiFederal University of Pernambuco, Brazil, Paulo BorbaFederal University of Pernambuco, Brazil, Paola AcciolyFederal University of Pernambuco, Brazil DOI |