Binding-time analysis for Standard ML

We present an efficient base algorithm for binding-time analysis based on constraint solving and the union-find algorithm. In practice it has been used to handle all of Standard ML except modules and we show the principles of how constraints can be used for binding-time analysis of Standard ML; in particular we show how to binding-time analyse nested pattern matching. To the best of our knowledge no previous binding-time analysis has treated nested pattern matching.

[1]  Flemming Nielson,et al.  Automatic Binding Time Analysis for a Typed lambda-Calculus , 1988, Sci. Comput. Program..

[2]  Jens Palsberg,et al.  Binding-time analysis: abstract interpretation versus type inference , 1994, Proceedings of 1994 IEEE International Conference on Computer Languages (ICCL'94).

[3]  Robert E. Tarjan,et al.  Data structures and network algorithms , 1983, CBMS-NSF regional conference series in applied mathematics.

[4]  Lars Ole Andersen Binding-time analysis and the taming of C pointers , 1993, PEPM '93.

[5]  Flemming Nielson,et al.  Automatic binding time analysis for a typed λ-calculus , 1988, POPL '88.

[6]  Robin Milner,et al.  Definition of standard ML , 1990 .

[7]  Fritz Henglein,et al.  Efficient Type Inference for Higher-Order Binding-Time Analysis , 1991, FPCA.

[8]  Robin Milner,et al.  Commentary on standard ML , 1990 .

[9]  Peter Sestoft,et al.  Partial evaluation and automatic program generation , 1993, Prentice Hall international series in computer science.

[10]  Anne De Niel Self-applicable partial evaluation of polymorphically typed functional languages , 1993 .

[11]  John Launchbury,et al.  Projection factorisations in partial evaluation , 1991 .

[12]  Kei Davis,et al.  PERs from projections for binding-time analysis , 1995, LISP Symb. Comput..

[13]  Anders Bondorf,et al.  Efficient Analysis for Realistic Off-Line Partial Evaluation , 1993, J. Funct. Program..