Type inference for polymorphic references
Information and Computation
Control-flow analysis of higher-order languages of taming lambda
Control-flow analysis of higher-order languages of taming lambda
Set based program analysis
Safety analysis versus type inference
Information and Computation
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
Linear-time subtransitive control flow analysis
Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation
Partitioning dataflow analyses using types
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory
Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory
The Definition of Standard ML
Separate Abstract Interpretation for Control-Flow Analysis
TACS '94 Proceedings of the International Conference on Theoretical Aspects of Computer Software
Constraint-Based Program Analysis (Abstract)
SAS '96 Proceedings of the Third International Symposium on Static Analysis
Type-Directed Flow Analysis for Typed Intermediate Languages
SAS '97 Proceedings of the 4th International Symposium on Static Analysis
Proceedings of the 7th International Conference on Computer Aided Verification
Set Based Analysis of ML Programs (Extended Abstract)
Set Based Analysis of ML Programs (Extended Abstract)
Interprocedural exception analysis for Java
Proceedings of the 2001 ACM symposium on Applied computing
A proof method for the corectness of modularized OCFA
Information Processing Letters
VM lambda: A Functional Calculusfor Scientific Discovery
FLOPS '02 Proceedings of the 6th International Symposium on Functional and Logic Programming
Static Monotonicity Analysis for lambda-definable Functions over Lattices
VMCAI '02 Revised Papers from the Third International Workshop on Verification, Model Checking, and Abstract Interpretation
An uncaught exception analysis for Java
Journal of Systems and Software
IFL'08 Proceedings of the 20th international conference on Implementation and application of functional languages
Hi-index | 5.23 |
We present a static analysis that detects potential runtime exceptions that are raised and never handled inside Standard ML (SML) programs. This analysis will predict abrupt termination of SML programs, which is SMLs only one "safety hole". Even though SML program's control flow and exception flow are in general mutually dependent, analyzing the two flows are safely decoupled. Program's control flow is firstly estimated by simple case analysis of call expressions. Using this call-graph information, program's exception flow is derived as set constraints, whose least model is our analysis result. Both of these two analyses are proven safe and the reasons behind each design decision are discussed. Our implementation of this analysis has been applied to realistic SML programs and shows a promising cost-accuracy performance. For the ML-Lex program, for example, the analysis takes 1.36 s and it reports 3 may-uncaught exceptions, which are exactly the exceptions that can really escape. Our final goal is to make the analysis overhead less than 10% of the compilation time (compiling the ML-Lex takes 6-7 s) and to analyze modules in isolation. Copyright 2002 Elsevier Science B.V.