A calculus with polymorphic and polyvariant flow types

J. B. WELLS, ALLYN DIMOCK, ROBERT MULLER, FRANKLYN TURBAK
2002 Journal of functional programming  
We present λ CIL , a typed λ-calculus which serves as the foundation for a typed intermediate language for optimizing compilers for higher-order polymorphic programming languages. The key innovation of λ CIL is a novel formulation of intersection and union types and flow labels on both terms and types. These flow types can encode polyvariant control and data flow information within a polymorphically typed program representation. Flow types can guide a compiler in generating customized data
more » ... sentations in a strongly typed setting. Since λ CIL enjoys confluence, standardization, and subject reduction properties, it is a valuable tool for reasoning about programs and program transformations. *
doi:10.1017/s0956796801004245 fatcat:cmb2ybnjijbo3ampb6f5u57dxy