Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456 Norman Ramsey
Want to know how the machine works?
Consider COMP 40!
Send email to
nr@cs.tufts.edu.
Send physical documents
to my postal address.
If you come yourself you'll want directions.
Telephone +1 617 627 4923.
Skype (chat preferred): norman-ramsey AIM: norman62ramsey Yahoo chat: norman_ramsey
Fax +1 617 627 2227 (but if you can, scan and email instead)
My vita and public key are online.
My research interests are broad, but grounded in programming
languages.
I like programming languages because there is nothing like
a good language to help us express computations precisely, in ways
that we can reason about them, while still keeping things
at a high level.
I focus on reusable, low-level programming-language infrastructure;
I want to make it easy and cheap to build the programming
languages of the future.
I also work in functional programming and programming-language design,
including the design of special-purpose languages for solving problems
in distributed systems.
My most recent work has been on reusable back ends, under the auspices
of the
C-- project,
which I direct.
My research is currently in transition: I am working on or
interested in
compilers; run-time systems; spam filtering;
precise, machine-checkable, composable specifications for programming
assignments; and
algorithms and infrastructure for managing replicated data.
I am recruiting PhD students for admission in 2010.
I have collected both highly significant and recent papers.
Links are to abstracts so you can check
out the topic without downloading a monster.
For a complete view, including older work, see my
publications list.
A Single Intermediate Language
That Supports Multiple Implementations of Exceptions (with Simon L. Peyton
Jones).
Proceedings of the ACM SIGPLAN '00 Conference on Programming Language
Design and Implementation, in SIGPLAN Notices,
35(5):285–298, May 2000.
This paper is the most technical and rigorous of the C-- papers.
It exemplifies what I am trying to achieve in C--: clean, low-level
mechanisms that compiler writers can use to implement different
high-level–language features and to control cost tradeoffs.
Stochastic Lambda Calculus and
Monads of Probability Distributions (with Avi Pfeffer).
Proceedings of the 29th ACM Symposium on the Principles of Programming
Languages, in SIGPLAN Notices, 37(1):154–165, January
2002.
This paper explores the design of probabilistic languages in a
foundational, principled way. Its special contribution is to analyze
important implementation techniques in a way that is completely formal and is
rigorously connected to the theory of probability.
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.
The paper solves a small but difficult problem in analysis of binary
codes. This problem is repeatedly a stumbling block for industry groups that
work with binary codes, and I believe our solution is definitive.
Specifying Representations of
Machine Instructions (with Mary F.
Fernández).
ACM Transactions on Programming Languages and Systems,
19(3):492–524, May 1997.
This is the most technical and the definitive description of my early
work on declarative machine descriptions.
An Algebraic Approach to File
Synchronization (with Elöd Csirmaz).
In Proceedings of the 8th European Software Engineering Conference (ESEC)
and 9th ACM SIGSOFT Symposium on the Foundations of Software Engineering
(FSE-9), pages 175–185, September 2001.
This paper discusses how to maintain consistency among multiple
replicas of files that may be modified concurrently. We proposed reasoning
about this problem by examining the algebraic structure of a sequence of
modifications.
Hoopl: Dataflow Optimization Made
Simple (with João
Dias and Simon
Peyton Jones).
Submitted to POPL'10.
A refinement of our 2005 work on compiling with applicative
control-flow graphs. If you are a functional programmer and have any interest
in dataflow analysis, you will like this paper. And if you have always found
dataflow analysis complicated and mysterious, we hope to have demystified it.
Automatically Generating Back
Ends Using Declarative Machine Descriptions (with João Dias).
Submitted to POPL'10.
The most beautiful results from João Dias's doctoral
dissertation: (a) if all you know is the semantics of the intermediate
code and the target instruction set, generating a code generator is
undecidable; and (a) by using a clever new heuristic search based on
algebraic laws, João can generator code generators for real machines
quickly. The core of the algorithm combines Hoare logic and unification to
find sequences of machine instructions that implement intermediate code. Will
appeal especially to those who like inference rules with their compilers.
For a complete view, including older work, see my
publications list.
The ACM requires this 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.
Office
hours for
Fall 2010 have yet to be determined.
Advisees should make contact with me before August
26.
After that I will be overseas until classes start.
I am always interested in discussing
projects with students, and I
often have several undergraduate or master's students working with me part-time.
I may have an opening for Fall 2009.
I no longer maintain a
hot list; this is more of a random list.
An interest in personal productivity and pointers from
Benjamin Pierce
and
Phil Wadler
got me to Inbox Zero
on Wed 21 Feb 2007 at 6:00 PM.
After serious lossage caused by various alarums and excursions,
I recovered Zero at 6:30 PM on Mon 31 Dec 2007.
It was a pleasure to start the New Year with an empty inbox!
After starting at Tufts, I got a little behind; at the end of my
first year, my email debt was over 600 messages, but I am not
yet ready to declare bankruptcy.