Research papers by Norman Ramsey

These papers are listed in chronological order. The ACM holds copyrights to some of these papers, and it requires the following disclaimer:
The documents contained in these pages are included to ensure timely dissemination of scholarly and technical work on a non-commercial basis. Copyright and all rights therein are maintained by the authors or by other copyright holders, notwithstanding that they have offered their works here electronically. It is understood that all persons copying this information will adhere to the terms and constraints invoked by each author's copyright. These works may not be reposted without the explicit permission of the copyright holder.

Refereed papers

Formation and breakup rates of RbXe van der Waals molecules in He and N_2 gas. Chemical Physics Letters, 102:340, 1983 (with Will Happer et al.).

Developing formally verified Ada programs. In Proceedings of the 5th International Workshop on Software Specification and Design, pages 257–265, Pittsburgh, PA, May 1989.

Literate programming: Weaving a language-independent WEB. Communications of the ACM, 32(9):1051–1055, September 1989.

Literate programming on a team project. Software—Practice & Experience, 21(7):677–683, July 1991 (with Carla Marceau).

A retargetable debugger. ACM SIGPLAN '92 Conference on Programming Language Design and Implementation,in SIGPLAN Notices, 27(7):22–31, July 1992 (with David R. Hanson).

Correctness of trap-based breakpoint implementations. In Proceedings of the 21st ACM Symposium on the Principles of Programming Languages, pages 15–24, Portland, OR, January 1994.

Literate programming simplified. IEEE Software, 11(5):97–105, September 1994.

The New Jersey machine-code toolkit. In Proceedings of the 1995 USENIX Technical Conference, pages 289–302, New Orleans, LA, January 1995 (with Mary F. Fernandez).

A simple solver for linear equations containing nonlinear operators. Software—Practice & Experience, 26(4):467–487, April 1996. (An earlier version appeared as Technical Report 95-068, Purdue University, Dept of Computer Sciences, November 1995.)

Relocating machine instructions by currying. ACM SIGPLAN '96 Conference on Programming Language Design and Implementation, 226–236, May 1996.

Specifying Representations of Machine Instructions. ACM Transactions on Programming Languages and Systems, 19(3):492-524, May 1997 (with Mary F. Fernandez).

Automatic Checking of Instruction Specifications. 1997 International Conference on Software Engineering, pp 326-336, May 1997 (with Mary F. Fernández).

Machine Descriptions to Build Tools for Embedded Systems In ACM SIGPLAN Workshop on Languages, Compilers, and Tools for Embedded Systems (LCTES'98), volume 1474 of LNCS, pages 172–188. Springer Verlag, June 1998 (with Jack W. Davidson).

Unparsing expressions with prefix and postfix operators. Software—Practice &Experience, 28(12):1327–1356, October 1998.

C--: a portable assembly language that supports garbage collection. Invited paper, International Conference on Principles and Practice of Declarative Programming, LNCS 1702, September 1999 (with Simon L. Peyton Jones and Fermin Reig).

The design of a resourceable and retargetable binary translator. In Working Conference on Reverse Engineering (WCRE'99), October 1999 (with Cristina Cifuentes and Mike van Emmerik).

Eliminating spurious error messages using exceptions, polymorphism, and higher-order functions, Computer Journal, 42(5):360–372, 1999.

A Single Intermediate Language That Supports Multiple Implementations of Exceptions (with Simon L. Peyton Jones). ACM SIGPLAN '00 Conference on Programming Language Design and Implementation, in SIGPLAN Notices, 35(5):285–298, June 2000.

An Algebraic Approach to File Synchronization (with Elod Csirmaz). Foundations of Software Engineering, 175–185, September 2001.

Stochastic Lambda Calculus and Monads of Probability Distributions (with Avi Pfeffer). Conference Record of the 29th Annual ACM Symposium on Principles of Programming Languages (POPL'02), in SIGPLAN Notices 37(1):154–165.

A transformational approach to binary translation of delayed branches (with Cristina Cifuentes). ACM Transactions on Programming Languages and Systems, 25(2):210-224, March 2003.

Pragmatic aspects of reusable program generators. Journal of Functional Programming, 13(3):601-646, May 2003. A preliminary version of this paper appeared in Semantics, Application, and Implementation of Program Generation, September 2000.

Embedding an Interpreted Language Using Higher-Order Functions and Types. In ACM SIGPLAN 2003 Workshop on Interpreters, Virtual Machines and Emulators, pages 6-14, June 2003.
A revised version has been accepted for publication the Journal of Functional Programming.

Widening Integer Arithmetic (with Kevin Redwine). 13th International Conference on Compiler Construction (CC'04), pages 232–249, April 2004.

Declarative Composition of Stack Frames (with Christian Lindig). 13th International Conference on Compiler Construction (CC'04), pages 298–312, April 2004.

A Generalized Algorithm for Graph-Coloring Register Allocation (with Mike Smith and Glenn Holloway). In ACM SIGPLAN '04 Conference on Programming Language Design and Implementation (PLDI'04), pages 277–288, June 2004.

Source-level Debugging for Multiple Languages With Modest Programming Effort (with Sukyoung Ryu). In 14th International Conference on Compiler Construction, pages 10–26, April 2005.

An Expressive Language of Signatures (with Kathleen Fisher and Paul Govereau). International Conference on Functional Programming (ICFP'05), pages 27–40, September 2005.

An Applicative Control-Flow Graph Based on Huet's Zipper (with João Dias). ACM SIGPLAN Workshop on ML, pages 101–122, September 2005.

ML Module Mania: A Type-Safe, Separately Compiled, Extensible Interpreter, ACM SIGPLAN Workshop on ML, pages 172–202, September 2005.

Staged Allocation: Engineering the Specification and Implementation of Procedure Calling Conventions (with Reuben Olinsky and Christian Lindig), Conference Record of the 33rd Annual ACM Symposium on Principles of Programming Languages (POPL'06), pages 409–421. January 2006.

Converting Intermediate Code to Assembly Code Using Declarative Machine Descriptions (with João Dias). To appear in the 15th International Conference on Compiler Construction (CC 2006), March 2006.

Unpublished

Featherweight concurrency in a portable assembly language (with Simon L. Peyton Jones).

Design Principles for Machine-Description Languages (with Jack Davidson and Mary F. Fernández).

Custom Calling Conventions in a Portable Assembly Language (with Christian Lindig), November 2002.

Technical reports

A search for capacitance fluctuations in tunnel capacitors (M.S. thesis). Technical report, Materials Science Center, Cornell University, August 1986.

A Spider user's guide. Technical Report TR-225-89, Department of Computer Science, Princeton University, August 1989.

The Spidery WEB system of structured documentation. Technical Report TR-226-89, Department of Computer Science, Princeton University, August 1989.

Concurrent programming in ML. Technical Report TR-262-90, Department of Computer Science, Princeton University, April 1990. [Abstract]

A Retargetable Debugger. PhD thesis, Princeton University, Department of Computer Science, December 1992. Also Technical Report CS-TR-403-92. [Abstract]

New Jersey Machine-Code Toolkit architecture specifications. Technical Report TR-470-94, Department of Computer Science, Princeton University, October 1994 (with Mary F. Fernandez).

New Jersey Machine-Code Toolkit reference manual. Technical Report TR-471-94, Department of Computer Science, Princeton University, October 1994 (with Mary F. Fernandez).

Specifying instructions' semantics using CSDL (interim report), Technical Report CS-97-31, Department of Computer Science, University of Virginia, November 1997, revised May 1998 (with Jack W. Davidson).

Machine-independent support for garbage collection, debugging, exception handling, and concurrency (draft). Technical Report CS-98-19, Department of Computer Science, University of Virginia, August 1998 (with Simon L. Peyton Jones).

The 1999 ICFP programming contest. SIGPLAN Notices 35(3):73–83, March 2000 (with J. Kevin Scott).

When do match-compilation heuristics matter? Technical Report CS-2000-13, Department of Computer Science, University of Virginia, May 2000 (with Kevin Scott).

Experience in the design, implementation, and use of a retargetable static binary translation framework. Technical Report TR-2002-105, Sun Microsystems Laboratories, Palo Alto, CA. January, 2002 (with Cristina Cifuentes, Mike Van Emmerik, and Brian Lewis).


Back to Norman Ramsey's home page