Norman Ramsey

[A picture of Norman from July 2014] 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 (now with photo!) are online.

I type 75 words per minute. We are typists first, so test yourself.
     
On this page:

Textbook

For some time now I have been teaching from a draft textbook which is intended to introduce the field of programming languages to an audience composed primarily of people who will have careers in software. My working title is Programming Languages: Build, Prove, and Compare, and if you want you can read a little bit about it.

Research

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.

For many years I focused on reusable, low-level programming-language infrastructure; I wanted to make it easy and cheap to build the programming languages of the future. My most recent work has been on reusable back ends and optimization libraries, which has been applied to the increasingly misnamed Glasgow Haskell Compiler (GHC). (I also keep an old snapshot of C--.)

Today I still work on programming-language infrastructure, but I focus on functional programming and on programming-language design, including the design of special-purpose languages. I am very interested in applying programming-language techniques to distributed source-code control and in the design and application of probabilistic programming languages.

Selected papers

This page show my most significant and most 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.

Five most significant papers

Five other significant papers

Other recent papers

These are some recent papers not listed above. They are in chronological order, so the most recent work is at the bottom.
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.

Teaching

In Fall 2014 I am teaching COMP 150PP (Probabilistic Programming Languages) and COMP 150TW (The Engineering Method of Technical Writing).

In the past, I have taught COMP 50, a pilot version of the first course that I have co-developed with Ben Hescott; COMP 40 (Machine Structures and Assembly-Language Programming); COMP 105 (Programming Languages); COMP 150GIT (Functional Programming and Source-Code Control); COMP 150DAO (Dataflow Analysis and Optimization); COMP 150FP (Advanced Functional Programming); and COMP 150TW (The Engineering Method of Technical Writing). I have also taught many courses at other universities that need not be named.

Resources for Students

Office hours for Fall 2014 are Tuesdays from 11:00–12:00, Fridays from 1:30–2:00, and by appointment. In addition, I will make myself available for a half an hour immediately after class on Monday, Wednesday, and Friday at 4:15PM.

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 have gathered material of interest to research students, including resources for writers, how to give a talk.
Undergraduate research students might also be interested, especially in my thoughts about how to get admitted to a PhD program. And I tell you what you need to give me (and when) if you want a letter of recommendation.

About Me

My professional home is in the Department of Computer Science at Tufts University. Some people think I'm a power user; others think I never sleep. A lot of people know me only as the creator of noweb. My ORCID ID is 0000-0002-5435-1135.

I currently serve ACM as a member of the SIGPLAN Executive Committee. I served as program chair for ICFP '07.

I signed the email charter; if you won't, I won't. I don't carry a cell phone. 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. At the end of my third year, at 9:12 PM on Monday 23 May 2011, I recovered Zero once again, but I cheated—I put 600 messages from 2009 and 2010 into an email demilitarized zone. The next time I got to Zero was at 5:03 PM on Wednesday 29 August 2012, again at 2:54 PM on 30 May 2014, and again at 6:34 PM on 12 November 2014. For a time I almost thought I detected a pattern there.

I'm a Bellcore alumnus and a long-standing member of the Luxuriant Flowing Hair Club for Scientists, and I have an Erdös Number of 3. I've been seen wearing orange and black academic regalia. Despite these distinguished credentials, I'm not ashamed to subscribe to a magazine with a centerfold. A secret vice is that I used to answer programming questions for fun; at one time, I was the 40th most reputable contributor (out of over 100,000). Along the way I earned silver Specialist badges in C, Haskell, programming languages, functional programming, and a couple of other topics.

Although it surprises some people, for over forty years I have been a football fan. When it's not football season, I've been known to play Guild Wars. I also have a rare autographed copy of Ad Verbum. I try to avoid P. J. Brown's deadly sins. I'm married to a licensed psychologist and game designer. I've appeared onstage (and in various clubs) as a jazz pianist, as a dancer, but most often as a chorister. My wish-fulfillment dreams are of sleeping.