Norman Ramsey

Visiting Assistant Professor of Computer Sciences (1995)

B.A., physics, Princeton University, 1983; M.S., physics, Cornell University, 1986; Ph.D., computer science, Princeton University, 1993

Professor Ramsey's research emphasizes tools and techniques for building parts of programming environments, including assemblers, linkers, compilers, debuggers, and object-code instrumentors. He is especially interested in techniques for making retargetable tools. He is the primary creator of the New Jersey Machine-Code Toolkit, which helps generate the machine-dependent code used in such applications. The toolkit uses a compact machine-description language that relates symbolic and binary representations of instructions. Specifications for the MIPS R300, SPARC, Intel Pentium, and PowerPC 604 range in size from 130 to 500 lines. From a specification, the toolkit derives the machine-dependent logic used in assembly, linking, analysis, etc. The toolkit's specification language also provides a high-level notation which can be used to recognize instructions, e.g., for object-code instrumentation or analysis.

Professor Ramsey is also interested in literate programming - the art of presenting programs primarly as documents to be read by people, and only secondarily to be executed by machine. He created the Spiderweb tool for building language-dependent literate-programming tools, as well as noweb, the first and most widely used language-independent literate-programming tool.

Ramsey's home page