SIGPLAN '84 Proceedings of the 1984 SIGPLAN symposium on Compiler construction
A Metalanguage for interactive proof in LCF
POPL '78 Proceedings of the 5th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Meta-circular interpreter for a strongly typed language
Journal of Symbolic Computation
Partial type inference for untyped functional programs
LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
Type inference with polymorphic recursion
ACM Transactions on Programming Languages and Systems (TOPLAS)
Explaining type errors in polymorphic languages
ACM Letters on Programming Languages and Systems (LOPLAS)
A type system equivalent to flow analysis
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A type system equivalent to flow analysis
ACM Transactions on Programming Languages and Systems (TOPLAS)
Proofs about a folklore let-polymorphic type inference algorithm
ACM Transactions on Programming Languages and Systems (TOPLAS)
A slicing-based approach for locating type errors
ACM Transactions on Software Engineering and Methodology (TOSEM)
Detecting race conditions in large programs
PASTE '01 Proceedings of the 2001 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Revised report on the algorithmic language scheme
ACM SIGPLAN Lisp Pointers
Compositional explanation of types and algorithmic debugging of type errors
Proceedings of the sixth ACM SIGPLAN international conference on Functional programming
Kima: An Automated Error Correction System for Concurrent Logic Programs
Automated Software Engineering
From symptom to cause: localizing errors in counterexample traces
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
How to repair type errors automatically
Trends in functional programming
CP '98 Proceedings of the 4th International Conference on Principles and Practice of Constraint Programming
Interactive type debugging in Haskell
Haskell '03 Proceedings of the 2003 ACM SIGPLAN workshop on Haskell
Discriminative sum types locate the source of type errors
ICFP '03 Proceedings of the eighth ACM SIGPLAN international conference on Functional programming
A visualisation of polymorphic type checking
Journal of Functional Programming
DrScheme: a programming environment for Scheme
Journal of Functional Programming
Type error slicing in implicitly typed higher-order languages
Science of Computer Programming - Special issue on 12th European symposium on programming (ESOP 2003)
Validating the Unit Correctness of Spreadsheet Programs
Proceedings of the 26th International Conference on Software Engineering
Improving type error diagnosis
Haskell '04 Proceedings of the 2004 ACM SIGPLAN workshop on Haskell
Information and Computation
Modular set-based analysis from contracts
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Seminal: searching for ML type-error messages
Proceedings of the 2006 workshop on ML
Science of Computer Programming
Searching for type-error messages
Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation
Jifclipse: development tools for security-typed languages
Proceedings of the 2007 workshop on Programming languages and analysis for security
A slicing-based approach for locating type errors
DSL'97 Proceedings of the Conference on Domain-Specific Languages on Conference on Domain-Specific Languages (DSL), 1997
ACM SIGPLAN Lisp Pointers
Types for atomicity: Static checking and inference for Java
ACM Transactions on Programming Languages and Systems (TOPLAS)
A type system equivalent to a model checker
ACM Transactions on Programming Languages and Systems (TOPLAS)
Effective blame for information-flow violations
Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering
Information and Computation
A rewriting semantics for type inference
ESOP'07 Proceedings of the 16th European conference on Programming
Type error slicing in implicitly typed higher-order languages
ESOP'03 Proceedings of the 12th European conference on Programming
Automatic binding-related error diagnosis in logic programs
ICLP'07 Proceedings of the 23rd international conference on Logic programming
A type system equivalent to a model checker
ESOP'05 Proceedings of the 14th European conference on Programming Languages and Systems
Explaining ML type errors by data flows
IFL'04 Proceedings of the 16th international conference on Implementation and Application of Functional Languages
Polymorphic type reconstruction using type equations
IFL'03 Proceedings of the 15th international conference on Implementation of Functional Languages
PADL'05 Proceedings of the 7th international conference on Practical Aspects of Declarative Languages
Trends in Trends in Functional Programming 1999/2000 versus 2007/2008
Higher-Order and Symbolic Computation
Improving type error messages for generic Java
Higher-Order and Symbolic Computation
An error-tolerant type system for variational lambda calculus
Proceedings of the 17th ACM SIGPLAN international conference on Functional programming
Precise explanation of success typing errors
PEPM '13 Proceedings of the ACM SIGPLAN 2013 workshop on Partial evaluation and program manipulation
Counter-factual typing for debugging type errors
Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
Toward general diagnosis of static errors
Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
Hi-index | 0.00 |
It is a truism that most bugs are detected only at a great distance from their source. Although polymorphic type-checking systems like those in ML help greatly by detecting potential run-time type errors at compile-time, such systems are still not very helpful for locating the source of a type error. Typically, an error is reported only when the type-checker can proceed no further, even though the programmer's actual error may have occurred much earlier in the text. We describe an algorithm which appears to be quite helpful in isolating and explaining the source of type errors. The algorithm works by keeping track of the reasons the checker makes deductions about the types of variables.