Results 1 
8 of
8
Unboxed Objects and Polymorphic Typing
, 1992
"... This paper presents a program transformation that allows languages with polymorphic typing (e.g. ML) to be implemented with unboxed, multiword data representations, more efficient than the conventional boxed representations. The transformation introduces coercions between various representations, b ..."
Abstract

Cited by 171 (5 self)
 Add to MetaCart
This paper presents a program transformation that allows languages with polymorphic typing (e.g. ML) to be implemented with unboxed, multiword data representations, more efficient than the conventional boxed representations. The transformation introduces coercions between various representations, based on a typing derivation. A prototype ML compiler utilizing this transformation demonstrates important speedups.
Extension of ML Type System with a Sorted Equational Theory on Types
, 1992
"... We extend the ML language by allowing a sorted regular equational theory on types for which unification is decidable and unitary. We prove that the extension keeps principal typings and subject reduction. A new set of typing rules is proposed so that type generalization is simpler and more efficient ..."
Abstract

Cited by 35 (11 self)
 Add to MetaCart
We extend the ML language by allowing a sorted regular equational theory on types for which unification is decidable and unitary. We prove that the extension keeps principal typings and subject reduction. A new set of typing rules is proposed so that type generalization is simpler and more efficient. We consider typing problems as general unification problems, which we solve with a formalism of unificands. Unificands naturally deal with sharing between types and lead to a more efficient type inference algorithm. The use of unificands also simplifies the proof of correctness of the algorithm by splitting it into more elementary steps. Extension du syst`eme de type de ML par une th'eorie 'equationnelle avec sortes sur les types R'esum'e Le typage du langage ML est 'etendu en consid'erant les types modulo une th'eorie 'equationnelle r'eguli`ere avec sortes pour laquelle l'unification est d'ecidable. Cette extension conserve la propri'et'e d'avoir un type principal ainsi que la conservatio...
Programming Languages and Dimensions
, 1996
"... Scientists and engineers must ensure that the equations and formulae which they use are dimensionally consistent, but existing programming languages treat all numeric values as dimensionless. This thesis investigates the extension of programming languages to support the notion of physical dimension. ..."
Abstract

Cited by 34 (3 self)
 Add to MetaCart
Scientists and engineers must ensure that the equations and formulae which they use are dimensionally consistent, but existing programming languages treat all numeric values as dimensionless. This thesis investigates the extension of programming languages to support the notion of physical dimension. A type system is presented similar to that of the programming language ML but extended with polymorphic dimension types. An algorithm which infers most general dimension types automatically is then described and proved correct. The semantics of the language is given by a translation into an explicitlytyped language in which dimensions are passed as arguments to functions. The operational semantics of this language is specified in the usual way by an evaluation relation defined by a set of rules. This is used to show that if a program is welltyped then no dimension errors can occur during its evaluation. More abstract properties of the language are investigated using a denotational semantics: these include a notion of invariance under changes in the units of measure used, analogous to parametricity in the polymorphic lambda calculus. Finally the dissertation is summarised and many possible directions for future research in dimension types and related type systems are described. i ii
Unboxed Values and Polymorphic Typing Revisited
 In The Seventh International Conference on Functional Programming Languages and Computer Architecture
, 1995
"... Polymorphic languages require that values passed to polymorphic functions all have a representation of the same size. Any value whose natural representation does not fit this size must be boxed, i.e. represented by a pointer to a heapallocated record. Major performance gains can be achieved by hand ..."
Abstract

Cited by 12 (0 self)
 Add to MetaCart
Polymorphic languages require that values passed to polymorphic functions all have a representation of the same size. Any value whose natural representation does not fit this size must be boxed, i.e. represented by a pointer to a heapallocated record. Major performance gains can be achieved by handling values in their natural, unboxed representation whenever possible. We show that not only monomorphic functions, but also many polymorphic functions can handle unboxed values if the function calling convention of the underlying implementation satisfies a mild assumption. A representation type system is deøned which describes boxing requirements. A type reconstruction algorithm is given which translates an untyped program into an explicitly typed program where all changes of representation are made explicit. Furthermore, we define an abstract machine which employs the required calling convention and is an adequate operational model for the representation type system.
Inferring Type Isomorphisms Generically
 Proceedings of the 7th International Conference on Mathematics of Program Construction, MPC 2004, volume 3125 of LNCS
"... Datatypes which di#er inessentially in their names and structure are said to be isomorphic; for example, a ternary product is isomorphic to a nested pair of binary products. In some canonical cases, the conversion function is uniquely determined solely by the two types involved. ..."
Abstract

Cited by 11 (7 self)
 Add to MetaCart
Datatypes which di#er inessentially in their names and structure are said to be isomorphic; for example, a ternary product is isomorphic to a nested pair of binary products. In some canonical cases, the conversion function is uniquely determined solely by the two types involved.
FUDGETS  Graphical User Interfaces and I/O in Lazy Functional Languages
, 1993
"... This thesis describes an implementation of a small windowbased graphical user interface toolkit for the X Window System written in the lazy functional language LML. By using this toolkit, a Haskell or LML programmer can create a user interface with menus, buttons and other graphical interface objec ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
This thesis describes an implementation of a small windowbased graphical user interface toolkit for the X Window System written in the lazy functional language LML. By using this toolkit, a Haskell or LML programmer can create a user interface with menus, buttons and other graphical interface objects, without conforming to more or less imperative programming paradigms imposed if she were to use a traditional (imperative) toolkit. Instead, the power of the abstraction methods provided by Haskell or LML are used. The main abstraction we use is the fudget. Fudgets are combined in a hierarchical structure, and they interact by message passing. The current implementation is based on a sequential evaluator, but by using nondeterminism and oracles, we suggest how fudgets can evaluate in parallel. We believe that the toolkit can be extended to a fullfeathered and practically useful high level graphical toolkit. ISBN 9170328412 i No one can have experienced to the fullest the true sense ...
Customizing an XML–Haskell data binding with type isomorphism inference in Generic Haskell
"... Customizing an XML–Haskell data binding ..."