Person:
Ramsey, Norman

Loading...
Profile Picture

Email Address

AA Acceptance Date

Birth Date

Research Projects

Organizational Units

Job Title

Last Name

Ramsey

First Name

Norman

Name

Ramsey, Norman

Search Results

Now showing 1 - 3 of 3
  • Thumbnail Image
    Publication
    Source-level Debugging for Multiple Languages With Modest Programming Effort
    (2005) Ryu, Sukyoung; Ramsey, Norman
    We present techniques that enable source-level debugging for multiple languages at the cost of only modest programming effort. The key idea is to avoid letting debugging requirements constrain the internal structure of the compiler. Constraints are minimized primarily by hiding the source-language type system and target-machine representations from the debugger. This approach enables us to support a new language and compiler while reusing existing elements: a multi-language, multi-platform debugger; the compilers implementation of source-language types and expressions; information already present in the compiler's private data structures; and our compile-time support library, which helps the compiler met its obligations to the debugger without exposing language-dependent details. We evaluate our approach using two case studies: the production compiler 1cc and an instructional compiler for MiniJava.
  • Thumbnail Image
    Publication
    Widening Integer Arithmetic
    (2004) Redwine, Kevin; Ramsey, Norman
    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.
  • Thumbnail Image
    Publication
    ML Module Mania: A Type-Safe, Separately Compiled, Extensible Interpreter
    (2005) Ramsey, Norman
    The new embedded interpreter Lua-ML combines extensibility and separate compilation without compromising type safety. The interpreter’s types are extended by applying a sum constructor to built-in types and to extensions, then tying a recursive knot using a two-level type; the sum constructor is written using an ML functor. The interpreter’s initial basis is extended by composing initialization functions from individual extensions, also using ML functors. Lua-ML adds a detailed example to the debate over how much power is needed in a modules language.