Polymorphic typing of variables and references

In this article we consider the polymorphic type checking of an imperative language. Our language contains variables, first-class references (pointers), and first-class functions. Variables, as in traditional imperative languages, are implicitly dereferenced, and their addresses (L-values) are not first-class values. Variables are easier to type check than references and, in many cases, lead to more general polymorphic types. We present a polymorphic type system for our language and prove that it is sound. Programs that use variables sometimes require weak types, as in Tofte's type system for Standard ML, but such weak types arise far less frequently with variables than with references

[1]  Robin Milner,et al.  Edinburgh LCF , 1979, Lecture Notes in Computer Science.

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

[3]  Andrew K. Wright Typing References by Effect Inference , 1992, ESOP.

[4]  Dennis Volpano,et al.  A Note on Typing Variables and References. , 1996 .

[5]  Xavier Leroy,et al.  Polymorphism by name for references and continuations , 1993, POPL '93.

[6]  Mads Tofte,et al.  Type Inference for Polymorphic References , 1990, Inf. Comput..

[7]  Robert Harper,et al.  A Note on "A Simplified Account of Polymorphic References" , 1996, Inf. Process. Lett..

[8]  Geoffrey Smith,et al.  A Type Soundness Proof for Variables in LCF ML , 1995, Inf. Process. Lett..

[9]  Robert Harper,et al.  A Simplified Account of Polymorphic References , 1994, Inf. Process. Lett..

[10]  Robin Milner,et al.  Principal type-schemes for functional programs , 1982, POPL '82.

[11]  Luís Damas,et al.  Type assignment in programming languages , 1984 .

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

[13]  Geoffrey Smith,et al.  Towards an ML-Style Polymorphic Type System for C , 1996, ESOP.

[14]  Xavier Leroy,et al.  Polymorphic type inference and assignment , 1991, POPL '91.

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

[16]  Xavier Leroy,et al.  Polymorphic typing of an algorithmic language , 1992 .

[17]  John Greiner,et al.  Standard ML Weak Polymorphism Can Be Sound , 1993 .

[18]  Ramesh Viswanathan,et al.  Standard ML-NJ weak polymorphism and imperative constructs , 1993, [1993] Proceedings Eighth Annual IEEE Symposium on Logic in Computer Science.

[19]  A. K. Wmght Polymorphism for imperative languages without imperative types , 1993 .