Projections for strictness analysis
Proc. of a conference on Functional programming languages and computer architecture
PLDI '91 Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation
Compile-time analysis of functional programs
Research topics in functional programming
Report on the programming language Haskell: a non-strict, purely functional language version 1.2
ACM SIGPLAN Notices - Haskell special issue
Set based program analysis
PLDI '94 Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
Eliminating array bound checking through dependent types
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Dependent types in practical programming
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The Definition of Standard ML
Flow analysis and optimization of LISP-like structures
POPL '79 Proceedings of the 6th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
STACS '87 Proceedings of the 4th Annual Symposium on Theoretical Aspects of Computer Science
Towards a Cost-Effective Estimation of Uncaught Exceptions in SML Programs
SAS '97 Proceedings of the 4th International Symposium on Static Analysis
Program Analysis Using Mixed Term and Set Constraints
SAS '97 Proceedings of the 4th International Symposium on Static Analysis
Dependent types in practical programming
Dependent types in practical programming
Practical refinement-type checking
Practical refinement-type checking
Type-Based Useless-Code Elimination for Functional Programs
SAIG '00 Proceedings of the International Workshop on Semantics, Applications, and Implementation of Program Generation
An Introduction to Dependent Type Theory
Applied Semantics, International Summer School, APPSEM 2000, Caminha, Portugal, September 9-15, 2000, Advanced Lectures
Imperative Programming with Dependent Types
LICS '00 Proceedings of the 15th Annual IEEE Symposium on Logic in Computer Science
Hi-index | 0.00 |
Pattern matching is an important feature in various functional programming languages such as SML, Caml, Haskell, etc. In these languages, unreachable or redundant matching clauses, which can be regarded as a special form of dead code, are a rich source for program errors. Therefore, eliminating unreachable matching clauses at compile-time can significantly enhance program error detection. Furthermore, this can also lead to significantly more efficient code at run-time. We present a novel approach to eliminating unreachable matching clauses through the use of the dependent type system of DML, a functional programming language that enriches ML with a restricted form of dependent types. We then prove the correctness of the approach, which consists of the major technical contribution of the paper. In addition, we demonstrate the applicability of our approach to dead code elimination through some realistic examples. This constitutes a practical application of dependent types to functional programming, and in return it provides us with further support for the methodology adopted in our research on dependent types in practical programming.