Some codes require computations to use fewer bits of precision than are normal for the target machine. For example, Java requires 32-bit arithmetic even on a 64-bit target. To run narrow codes on a wide target machine, we present a widening transformation. Almost every narrow operation can be widened by sign- or zero-extending the operands and using a target-machine instruction at its natural width. But extensions can be sometimes avoided, and our transformation avoids as many as possible. The key idea is knowing what each operation can accept in the high bits of its arguments and what it can guarantee about the high bits of its result. This knowledge is formalized using fill types, which drive the widening transformation.Engineering and Ap...
This paper proposes a unique hardware-software collaborative strategy to remove useless work at 16-b...
Parametric polymorphism enables code reuse and type safety. Underneath the uniform interface exposed...
This paper exploits the concept of optimizing the interpreted execution of Java programs with SuperO...
Many important applications perform computations on non-standard bit-width values; mapping them to ...
We present lookahead widening, a novel technique for using existing widening and narrowing operator...
AbstractNarrowing is a computation implemented by some declarative programming languages. Research i...
Safety-critical systems rely on various forms of machine arithmetic to perform their tasks: integer ...
64-bit address spaces come at the price of pointers requiring twice as much memory as 32-bit address...
This paper deals with the Java bytecode size optimization. It describes the Java Virtual Machine and...
Colloque avec actes et comité de lecture. internationale.International audienceIn this paper, we dea...
This entry makes machine words and machine arithmetic available for code generation from Isabelle/HO...
Online version Dec 2009, paper version 2010.International audienceWe consider the problem of formali...
Coding methods like the Huffman and the arithmetic coding utilize the skewness of character distribu...
Various code constructions use expander graphs to improve the error resilience. Often the use of exp...
AbstractΩmega is an experimental system that combines features of both a programming language and a ...
This paper proposes a unique hardware-software collaborative strategy to remove useless work at 16-b...
Parametric polymorphism enables code reuse and type safety. Underneath the uniform interface exposed...
This paper exploits the concept of optimizing the interpreted execution of Java programs with SuperO...
Many important applications perform computations on non-standard bit-width values; mapping them to ...
We present lookahead widening, a novel technique for using existing widening and narrowing operator...
AbstractNarrowing is a computation implemented by some declarative programming languages. Research i...
Safety-critical systems rely on various forms of machine arithmetic to perform their tasks: integer ...
64-bit address spaces come at the price of pointers requiring twice as much memory as 32-bit address...
This paper deals with the Java bytecode size optimization. It describes the Java Virtual Machine and...
Colloque avec actes et comité de lecture. internationale.International audienceIn this paper, we dea...
This entry makes machine words and machine arithmetic available for code generation from Isabelle/HO...
Online version Dec 2009, paper version 2010.International audienceWe consider the problem of formali...
Coding methods like the Huffman and the arithmetic coding utilize the skewness of character distribu...
Various code constructions use expander graphs to improve the error resilience. Often the use of exp...
AbstractΩmega is an experimental system that combines features of both a programming language and a ...
This paper proposes a unique hardware-software collaborative strategy to remove useless work at 16-b...
Parametric polymorphism enables code reuse and type safety. Underneath the uniform interface exposed...
This paper exploits the concept of optimizing the interpreted execution of Java programs with SuperO...