Type-based analysis of uncaught exceptions

This paper presents a program analysis to estimate uncaught exceptions in ML programs. This analysis relies on unification-based type inference in a non-standard type system, using rows to approximate both the flow of escaping exceptions (a la effect systems) and the flow of result values (a la control-flow analyses). The resulting analysis is efficient and precise; in particular, arguments carried by exceptions are accurately handled.

[1]  Henry G. Baker,et al.  Unify and conquer , 1990, LISP and Functional Programming.

[2]  Kwangkeun Yi,et al.  An Abstract Interpretation for Estimating Uncaught Exceptions in Standard ML Programs , 1998, Sci. Comput. Program..

[3]  François Pottier,et al.  A framework for type inference with subtyping , 1998, ICFP '98.

[4]  Manuel Fähndrich,et al.  Making Set-Constraint Program Analyses Scale , 1996 .

[5]  Frank Pfenning,et al.  Refinement types for ML , 1991, PLDI '91.

[6]  Atsushi Ohori,et al.  A polymorphic record calculus and its compilation , 1995, TOPL.

[7]  Kwangkeun Yi,et al.  Towards a Cost-Effective Estimation of Uncaught Exceptions in SML Programs , 1997, SAS.

[8]  François Pessaux,et al.  Type-based analysis of uncaught exceptions , 2000, TOPL.

[9]  Andrew W. Appel,et al.  Smartest recompilation , 1993, POPL '93.

[10]  Matthias Felleisen,et al.  Componential Set-Based Analysis , 1999, ACM Trans. Program. Lang. Syst..

[11]  Didier Rémy Syntactic theories and the algebra of record terms , 1992 .

[12]  Lars Birkedal,et al.  A region inference algorithm , 1998, TOPL.

[13]  Suresh Jagannathan,et al.  Polymorphic splitting: an effective polyvariant flow analysis , 1998, TOPL.

[14]  Fritz Henglein,et al.  Type inference with polymorphic recursion , 1993, TOPL.

[15]  Bjarne Steensgaard,et al.  Points-to analysis in almost linear time , 1996, POPL '96.

[16]  Fritz Henglein,et al.  Global tagging optimization by type inference , 1992, LFP '92.

[17]  Pierre Jouvelot,et al.  The Type and Effect Discipline , 1994, Inf. Comput..

[18]  Manuel Fähndrich,et al.  Making Set-Constraint Based Program Analyses Scale , 1996 .

[19]  François Pottier,et al.  Type Inference in the Presence of Subtyping: from Theory to Practice , 1998 .

[20]  Olin Shivers,et al.  Control-flow analysis of higher-order languages of taming lambda , 1991 .

[21]  David K. Gifford,et al.  Polymorphic effect systems , 1988, POPL '88.

[22]  Didier Rémy,et al.  Objective ML: a simple object-oriented extension of ML , 1997, POPL '97.

[23]  Didier Rémy,et al.  Type inference for records in natural extension of ML , 1994 .

[24]  Matthias Felleisen,et al.  A Syntactic Approach to Type Soundness , 1994, Inf. Comput..

[25]  Mads Tofte,et al.  Region-based Memory Management , 1997, Inf. Comput..

[26]  Jeffrey S. Foster,et al.  Tracking down Exceptions in Standard ML Programs , 1998 .

[27]  Alexander Aiken,et al.  Program Analysis Using Mixed Term and Set Constraints , 1997, SAS.

[28]  Alexander Aiken,et al.  Partial online cycle elimination in inclusion constraint graphs , 1998, PLDI.

[29]  Nevin Heintze,et al.  Set-based analysis of ML programs , 1994, LFP '94.

[30]  Mitchell Wand,et al.  Complete Type Inference for Simple Objects , 1987, LICS.

[31]  Alan Mycroft,et al.  Polymorphic Type Schemes and Recursive Definitions , 1984, Symposium on Programming.

[32]  Jerzy Tiuryn,et al.  Type reconstruction in the presence of polymorphic recursion , 1993, TOPL.

[33]  Didier Rémy,et al.  Type checking records and variants in a natural extension of ML , 1989, POPL '89.

[34]  Andrew K. Wright Simple imperative polymorphism , 1995, LISP Symb. Comput..