Heuristics for type error discovery and recovery (revised)

Jurriaan Hage, Bastiaan Heeren

Research output: Book/ReportOther report

Abstract

Type error messages that are reported for incorrect functional programs can be difficult to understand. The reason for this is that most type inference algorithms proceed in a mechanical, syntax-directed way, and are unaware of inference techniques used by experts to explain type inconsistencies. We formulate type inference as a constraint problem, and analyze the collected constraints to improve the error messages (and, as a result, programming efficiency). A special data structure, the type graph, is used to detect global properties of a program, and furthermore enables us to uniformly describe a large collection of heuristics which embed expert knowledge in explaining type errors. Some of these also suggest corrections to the programmer. Our work has been fully implemented and is used in practical situations, showing that it scales up well.
Original languageEnglish
PublisherDepartment of Information and Computing Sciences, Utrecht University
Number of pages17
Publication statusPublished - 2006

Publication series

NameTechnical Report Series
No.UU-CS-2006-007

Fingerprint

Dive into the research topics of 'Heuristics for type error discovery and recovery (revised)'. Together they form a unique fingerprint.

Cite this