Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages 2014
DOI: 10.1145/2535838.2535870
|View full text |Cite
|
Sign up to set email alerts
|

Toward general diagnosis of static errors

Abstract: We introduce a general way to locate programmer mistakes that are detected by static analyses such as type checking. The program analysis is expressed in a constraint language in which mistakes result in unsatisfiable constraints. Given an unsatisfiable system of constraints, both satisfiable and unsatisfiable constraints are analyzed, to identify the program expressions most likely to be the cause of unsatisfiability. The likelihood of different error explanations is evaluated under the assumption that the pr… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

1
35
0

Year Published

2014
2014
2023
2023

Publication Types

Select...
4
4
1

Relationship

2
7

Authors

Journals

citations
Cited by 36 publications
(36 citation statements)
references
References 31 publications
1
35
0
Order By: Relevance
“…Instead they use Haack and Wells' approach [25,26] of duplicating constraint sets when dealing with let-expressions, which, as mentioned above, could lead to an exponential growth of the number of generated constraints. The authors acknowledge this issue and report that they "find performance is still reasonable with this approach" [67]. They then showed that their method scales up to more expressive type systems such as Haskell's type system [68].…”
Section: Significant Non-slicing Type Explanation Methodsmentioning
confidence: 99%
See 1 more Smart Citation
“…Instead they use Haack and Wells' approach [25,26] of duplicating constraint sets when dealing with let-expressions, which, as mentioned above, could lead to an exponential growth of the number of generated constraints. The authors acknowledge this issue and report that they "find performance is still reasonable with this approach" [67]. They then showed that their method scales up to more expressive type systems such as Haskell's type system [68].…”
Section: Significant Non-slicing Type Explanation Methodsmentioning
confidence: 99%
“…Many approaches use this idea to improve error reporting. A probably incomplete list includes [41,25,26,23,33,32,27,34,29,52,53,54,50,44,67,68]. Independently from this separation, there exist other approaches toward improving errors [66]: error explanation systems [8,20,19,65] which focus on explaining the reasoning steps leading to a type error, and error reporting systems [60,57,13] which focus on trying to precisely locate errors in pieces of code.…”
Section: Introductionmentioning
confidence: 99%
“…The former is mostly standard (e.g., for Hindley/Milner system (Wand 1987;Aiken and Wimmers 1993;Zhang and Myers 2014)), hence omitted in this paper. Next, we assume all base types are available, and focus on the inference of the distance counterpart.…”
Section: Type Inferencementioning
confidence: 99%
“…Techniques that improve type-error messages [19], [24], [25], [45] can enable CASCADE to infer better changes for more type-errors.…”
Section: Type-error Messagesmentioning
confidence: 99%