Person: Ramsey, Norman
Loading...
Email Address
AA Acceptance Date
Birth Date
Research Projects
Organizational Units
Job Title
Last Name
Ramsey
First Name
Norman
Name
Ramsey, Norman
3 results
Search Results
Now showing 1 - 3 of 3
Publication Source-level Debugging for Multiple Languages With Modest Programming Effort(2005) Ryu, Sukyoung; Ramsey, NormanWe 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.Publication Widening Integer Arithmetic(2004) Redwine, Kevin; Ramsey, NormanSome 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.Publication ML Module Mania: A Type-Safe, Separately Compiled, Extensible Interpreter(2005) Ramsey, NormanThe 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.