|
Abstract : |
, 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 ow labels on both terms and types. These ow types can encode polyvariant control and data ow information within a polymorphically typed program representation. Flow types can guide a compiler in generating customized data representations in a strongly typed setting. Since CIL enjoys con uence, standardization, and subject reduction properties, it is a valuable tool for reasoning about programs and program transformations., |