CLU reference manual
The revised report on the syntactic theories of sequential control and state
Theoretical Computer Science
Type inference with polymorphic recursion
ACM Transactions on Programming Languages and Systems (TOPLAS)
A polymorphic record calculus and its compilation
ACM Transactions on Programming Languages and Systems (TOPLAS)
An abstract interpretation for estimating uncaught exceptions in standard ML programs
Science of Computer Programming
Type-based analysis of uncaught exceptions
ACM Transactions on Programming Languages and Systems (TOPLAS)
Java Language Specification, Second Edition: The Java Series
Java Language Specification, Second Edition: The Java Series
Towards a Cost-Effective Estimation of Uncaught Exceptions in SML Programs
SAS '97 Proceedings of the 4th International Symposium on Static Analysis
Tracking down Exceptions in Standard ML Programs
Tracking down Exceptions in Standard ML Programs
Journal of Functional Programming
The standard ML basis library
Extensible programming with first-class cases
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
Semantics of an effect analysis for exceptions
TLDI '07 Proceedings of the 2007 ACM SIGPLAN international workshop on Types in languages design and implementation
A specification logic for exceptions and beyond
ATVA'10 Proceedings of the 8th international conference on Automated technology for verification and analysis
AuraConf: a unified approach to authorization and confidentiality
Proceedings of the 7th ACM SIGPLAN workshop on Types in language design and implementation
IFL'08 Proceedings of the 20th international conference on Implementation and application of functional languages
Row-based effect types for database integration
TLDI '12 Proceedings of the 8th ACM SIGPLAN workshop on Types in language design and implementation
Exact flow analysis by higher-order model checking
FLOPS'12 Proceedings of the 11th international conference on Functional and Logic Programming
Model Checking Higher-Order Programs
Journal of the ACM (JACM)
Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
Hi-index | 0.00 |
Exceptions are an indispensable part of modern programming languages. They are, however, handled poorly, especially by higherorder languages such as Standard ML and Haskell: in both languages a well-typed program can unexpectedly fail due to an uncaught exception. In this paper, we propose a technique for type-safe exception handling. Our approach relies on representing exceptions as sums and assigning exception handlers polymorphic, extensible row types. Based on this representation, we describe an implicitly typed external language EL where well-typed programs do not raise any unhandled exceptions. EL relies on sums, extensible records, and polymorphism to represent exceptionhandling, and its type system is no more complicated than that for existing languages with polymorphic extensible records. EL is translated into an internal language IL that is a variant of System F extended with extensible records. The translation performs a CPS transformation to represent exception handlers as continuations. It also relies on duality to transform sums into records. (The details for this translation are given in an accompanying technical report.) We describe the implementation of a compiler for a concrete language based on EL . The compiler performs full type inference and translates EL -style source code to machine code. Type inference relieves the programmer from having to provide explicit exception annotations. We believe that this is the first practical proposal for integrating exceptions into the type system of a higher-order language.