Programs written in Haskell may fail at runtime with either a pattern match error, or with non-termination. Both of these can be thought of as giving the value ⊥ as a result. Other forms of failure, for example heap exhaustion, are not considered. The first section of this document reviews previous work, including total functional programming and sized types. Attention is paid to termination checkers for both Prolog and various functional languages. The main result from work so far is a static checker for pattern match errors that allows non-exhaustive patterns to exist, yet ensures that a pattern match error does not occur. It includes a constraint language that can be used to reason about pattern matches, along with mechanisms to propagat...
Program errors are hard to detect and are costly both to programmers who spend significant efforts i...
Algorithms for constraint set satisfiability and simplification of Haskell type class constraints a...
Program errors are hard to detect and are costly both to programmers who spend significant efforts i...
Static typing is one of the most prominent techniques in the design of programming languages for mak...
There are many powerful techniques for automated termination analysis of term rewrite systems (TRSs)...
There are many powerful techniques for automated termination analysis of term rewriting. However, up...
We examine the ML pattern-matching anomalies of useless clauses and non-exhaustive matches. We state...
In recent years techniques and systems have been developed to prove non-termination of logic program...
Computing with failures is a typical programming technique in functional logic programs. However, th...
AbstractComputing with failures is a typical programming technique in functional logic programs. How...
There are many powerful techniques for automated termination analysis of term rewriting. However, up...
We present a method to automatically detect termination in a strict, first order functional language...
This article makes two contributions to the work on semantics-based termination analysis for logic p...
The most fundamental decision problem in computer science is the halting problem, i.e., given a desc...
Haskell is a functional programming language with nominally non-strict semantics, implying that eval...
Program errors are hard to detect and are costly both to programmers who spend significant efforts i...
Algorithms for constraint set satisfiability and simplification of Haskell type class constraints a...
Program errors are hard to detect and are costly both to programmers who spend significant efforts i...
Static typing is one of the most prominent techniques in the design of programming languages for mak...
There are many powerful techniques for automated termination analysis of term rewrite systems (TRSs)...
There are many powerful techniques for automated termination analysis of term rewriting. However, up...
We examine the ML pattern-matching anomalies of useless clauses and non-exhaustive matches. We state...
In recent years techniques and systems have been developed to prove non-termination of logic program...
Computing with failures is a typical programming technique in functional logic programs. However, th...
AbstractComputing with failures is a typical programming technique in functional logic programs. How...
There are many powerful techniques for automated termination analysis of term rewriting. However, up...
We present a method to automatically detect termination in a strict, first order functional language...
This article makes two contributions to the work on semantics-based termination analysis for logic p...
The most fundamental decision problem in computer science is the halting problem, i.e., given a desc...
Haskell is a functional programming language with nominally non-strict semantics, implying that eval...
Program errors are hard to detect and are costly both to programmers who spend significant efforts i...
Algorithms for constraint set satisfiability and simplification of Haskell type class constraints a...
Program errors are hard to detect and are costly both to programmers who spend significant efforts i...