| Atsushi Ohori and Tomonobu Takamizawa. An unboxed operational semantics for ML polymorphism. Lisp and Symbolic Computation, 10(1):61--91, 1997. |
....an expensive operation. Staticallytyped languages whose type system is too flexible to allow this determination of size information in all cases (e.g. because of polymorphism, type abstraction, or subtyping) make it more difficult, but not impossible, to exploit unboxed data representations: see [31, 21, 34, 16, 39, 22, 33, 28] for various approaches. Guarantees provided by the type system can also enable powerful program optimizations. For instance, in a strongly typed language (whose type system does not allow casts between incompatible types) two pointers that have incompatible types cannot alias, i.e. cannot ....
Atsushi Ohori and Tomonobu Takamizawa. An unboxed operational semantics for ML polymorphism. Lisp and Symbolic Computation, 10(1):61--91, 1997.
.... to polymorphic functions and extra components of structures defining abstract types; generic code then inspects those run time type expressions to determine the locations and sizes of values with statically unknown types [18, 8] Earlier proposals in the context of stack based abstract machines [9, 10] pass only size information as extra parameters, instead of full type expressions. Unlike the coercion based approach, this approach supports arbitrary unboxing inside data structures, but does not accommodate very well efficient register based calling conventions for generic functions. Tag based ....
A. Ohori and T. Takamizawa. An unboxed operational semantics for ML polymorphism. Lisp and Symbolic Computation, 1997. To appear.
....may raise a program s complexity. The coercion based approach is still limited by the barrier of polymorphism: once we pass a function to a higher order polymorphic functional, there is no way we can use its unboxed version. Runtime type passing can handle this case. Ohori and Takamizawa [15] showed that it is possible to pass unboxed values to polymorphic functions by parameterizing them on the size of their arguments. Harper and Morrisett i : int C i : int i : int C i : boxint (v1 ; v2 ) 1 2 C (v 0 1 ; v 0 2 ) 0 1 0 2 if v1 : 1 C v 0 1 : 0 1 and ....
A. Ohori and T. Takamizawa. An unboxed operational semantics for ML polymorphism. Journal of Lisp and Symbolic Computation, 10(1):61 - 91, 1997.
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC