Polymorphic Subtyping for Effect Analysis: The Static Semantics

The integration of polymorphism (in the style of the ML let-construct), subtyping, and effects (modelling assignment or communication) into one common type system has proved remarkably difficult. One line of research has succeeded in integrating polymorphism and subtyping; adding effects in a straightforward way results in a semantically unsound system. Another line of research has succeeded in integrating polymorphism, effects, and subeffecting; adding subtyping in a straight-forward way invalidates the construction of the inference algorithm. This paper integrates all of polymorphism, effects, and subtyping into an annotated type and effect system for Concurrent ML and shows that the resulting system is a conservative extension of the ML type system.

[1]  Robin Milner,et al.  A Theory of Type Polymorphism in Programming , 1978, J. Comput. Syst. Sci..

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

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

[4]  Ryan Stansifer,et al.  Type inference with subtypes , 1988, POPL '88.

[5]  Prateek Mishra,et al.  Polymorphic Subtype Inference: Closing the Theory-Practice Gap , 1989, TAPSOFT, Vol.2.

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

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

[8]  John C. Mitchell,et al.  Type inference with simple subtypes , 1991, Journal of Functional Programming.

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

[10]  Mark P. Jones A Theory of Qualified Types , 1992, ESOP.

[11]  John H. Reppy Concurrent ML: Design, Application and Semantics , 1993, Functional Programming, Concurrency, Simulation and Automated Reasoning.

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

[13]  Peter E. Lauer,et al.  Functional Programming, Concurrency, Simulation and Automated Reasoning , 1993, Lecture Notes in Computer Science.

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

[15]  Fritz Henglein,et al.  Polymorphic Binding-Time Analysis , 1994, ESOP.

[16]  Flemming Nielson,et al.  Higher-order concurrent programs with finite communication topology (extended abstract) , 1994, POPL '94.

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

[18]  Geoffrey Smith,et al.  Principal Type Schemes for Functional Programs with Overloading and Subtyping , 1994, Sci. Comput. Program..

[19]  Flemming Nielson,et al.  Constraints for Polymorphic Behaviours of Concurrent ML , 1994, CCL.

[20]  Flemming Nielson,et al.  Polymorphic Subtyping for Effect Analysis: The Algorithm , 1996, LOMAPS.

[21]  Flemming Nielson,et al.  Polymorphic Subtyping for Effect Analysis: The Dynamic Semantics , 1996, LOMAPS.

[22]  Flemming Nielson,et al.  Type and Behaviour Reconstruction for Higher-Order Concurrent Programs , 1997, J. Funct. Program..

[23]  Prakash Panangaden,et al.  The Essence of Concurrent ML , 1997 .

[24]  Mourad Debbabi,et al.  A Semantic Theory for ML Higher-Order Concurrency Primitives , 1997 .