Statically typed languages with Hindley-Milner polymorphism have long been compiled using inefficient and fully boxed data representations. Recently, several new compilation methods have been proposed to support more efficient and unboxed multi-word representations. Unfortunately, none of these techniques is fully satisfactory. For example, Leroy's coercion-based approach does not handle recursive data types and mutable types well. The type-passing approach (proposed by Harper and Morrisett) handles all data objects, but it involves extensive runtime type analysis and code manipulations. This paper presents a new flexible representation analysis technique that combines the best of both approaches. Our new scheme supports unboxed repre...
International audienceLanguages with polymorphic types (e.g. ML) have traditionally been implemented...
Traditional techniques for implementing polymorphism use a universal representation for objects of u...
Intensional polymorphism, the ability to dispatch to different routines based on types at run time...
Statically typed languages with Hindley-Milner polymorphism have long been compiled using inefficien...
Statically typed languages with Hindley-Milner polymorphism have long been compiled using inefficien...
Statically typed languages with Hindley-Milner polymorphism have long been compiled using inefficien...
Traditional techniques for implementing polymorphism use auniversal representation for objects of un...
International audienceThis paper presents a program transformation that allows languages with polymo...
International audienceLanguages with polymorphic types (e.g. ML) have traditionally been implemented...
Types have been used to describe the size and shape of data structures at compile time. In polymorph...
Types have been used to describe the size and shape of data structures at compile time. In polymorph...
International audienceThis paper presents a program transformation that allows languages with polymo...
There is a middle ground between parametric and ad-hoc polymorphism in which a computation can depen...
There is a middle ground between parametric and ad-hoc polymorphism in which a computation can depen...
Abstract Run-time type dispatch enables a variety of advanced optimization techniques for polymorphi...
International audienceLanguages with polymorphic types (e.g. ML) have traditionally been implemented...
Traditional techniques for implementing polymorphism use a universal representation for objects of u...
Intensional polymorphism, the ability to dispatch to different routines based on types at run time...
Statically typed languages with Hindley-Milner polymorphism have long been compiled using inefficien...
Statically typed languages with Hindley-Milner polymorphism have long been compiled using inefficien...
Statically typed languages with Hindley-Milner polymorphism have long been compiled using inefficien...
Traditional techniques for implementing polymorphism use auniversal representation for objects of un...
International audienceThis paper presents a program transformation that allows languages with polymo...
International audienceLanguages with polymorphic types (e.g. ML) have traditionally been implemented...
Types have been used to describe the size and shape of data structures at compile time. In polymorph...
Types have been used to describe the size and shape of data structures at compile time. In polymorph...
International audienceThis paper presents a program transformation that allows languages with polymo...
There is a middle ground between parametric and ad-hoc polymorphism in which a computation can depen...
There is a middle ground between parametric and ad-hoc polymorphism in which a computation can depen...
Abstract Run-time type dispatch enables a variety of advanced optimization techniques for polymorphi...
International audienceLanguages with polymorphic types (e.g. ML) have traditionally been implemented...
Traditional techniques for implementing polymorphism use a universal representation for objects of u...
Intensional polymorphism, the ability to dispatch to different routines based on types at run time...