Sam Tobin-Hochstadt

Tree

Research Assistant Professor
PLT @ Programming Research Lab
College of Computer and Information Science
Northeastern University

Office: West Village H, Room 358
Email: samth@ccs.neu.edu
Blog: Scripts to Programs
Microblogging: @samth
Curriculum Vitae: pdf

Papers: DBLP, Google Scholar, arXiv, ACM

Software: GitHub

Submit to DLS 2012!

News

At SPLASH, I was interviewed by Charles Torre from Microsoft Channel 9 about our design for JavaScript modules. You can watch the video here.

I will be on the Program Committee for the International Conference on Functional Programming in Copenhagen next year.

I've started blogging at Scripts to Programs.

Our paper on lightweight metatheory mechanization in Redex will appear at POPL'12 in Philadelphia.

Our paper on Typed Racket's numeric tower will appear at PADL'12 in Philadelphia.

The 3rd International Workshop on Scripts to Programs will be co-located with ECOOP and PLDI in Beijing in June 2012.

Research Projects

My research focuses on the design and implementation of programming systems. I'm particularly interested in programming languages that support the evolution of software. I'm currently working with the DARPA CRASH program on Racket and with Mozilla Labs on JavaScript.

Typed Racket

I created and maintain Typed Racket, a statically-typed dialect of Racket that allows existing untyped Racket programs to be enriched with types.

Papers

Complete Monitors for Behavioral Contracts. With Christos Dimoulas and Matthias Felleisen.
European Symposium on Programming (ESOP), March 2012.
[ PDF ]

Typing the Numeric Tower. With Vincent St-Amour, Matthew Flatt and Matthias Felleisen.
Symposium on Practical Aspects of Declarative Languages (PADL), January 2012.
[ PDF ]

Logical Types for Untyped Languages. With Matthias Felleisen.
International Conference on Functional Programming (ICFP), September 2010.
[ PDF | ACM DL ]

The Design and Implementation of Typed Scheme (Preprint). With Matthias Felleisen.
Accepted for publication in Higher-Order and Symbolic Computation, September 2010.
[ PDF | arXiv ]

Functional Data Structures for Typed Racket. With Hari Prashanth K R.
Workshop on Scheme and Functional Programming, August 2010.
[ PDF | PLaneT Package ]

Typed Scheme: From Scripts to Programs.
PhD Dissertation, Northeastern University, January 2010.
[ PDF ]

Cycles without pollution: a gradual typing poem. With Robert Bruce Findler.
1st International Workshop on Script to Program Evolution (STOP), July 2009.
[ PDF | ACM DL ]

Practical Variable-Arity Polymorphism. With T. Stephen Strickland and Matthias Felleisen.
European Symposium on Programming (ESOP), March 2009.
[ PDF | Springer ]

The Design and Implementation of Typed Scheme. With Matthias Felleisen.
Symposium on Principles of Programming Languages (POPL), January 2008.
[ PDF | ACM DL | Formal Models ]

Interlanguage Migration: From Scripts to Programs. With Matthias Felleisen.
Dynamic Languages Symposium (DLS), October 2006.
[ PDF | ACM DL ]

Talks

Growing Software: From Scripts to Programs, Oregon State University EECS Colloquium, Corvallis, Oregon, March 2011.

From Scripts to Programs, Indiana University Department of Computer Science, Bloomington, IN, November 2010.

Logical Types for Untyped Languages, International Conference on Functional Programming, Baltimore, MD, September 2010.

Logical Types for Scheme, New England Programming Languages and Systems Symposium, Yale University, April 2010.

Typed Scheme: From Scripts to Programs, Harvard University, Cambridge, MA, February 2010.

Types for Scheme, in Scheme, Boston Lisp Meeting, Boston, MA, December 2009.

Typed Scheme: From Scripts to Programs, Dissertation Defense, Northeastern University, Boston, MA, December 2009.

Typed Scheme: From Scripts to Programs, Sun Microsystems Laboratories, Burlington, MA, September 2009.

The Design and Implementation of Typed Scheme, Symposium in Honor of Mitchell Wand, Boston, MA, August 2009.

Cycles without pollution: a gradual typing poem, 1st International Workshop on Script to Program Evolution, Genoa, Italy, July 2009.

To Type or Not To Type, Northeastern University ACM Speaker Series, Boston, MA, April 2008.

Typed Scheme, Northeastern University CCIS Open House, Boston, MA, March 2008.

The Design and Implementation of Typed Scheme, Symposium on Principles of Programming Languages (POPL), San Fransisco, CA, January 2008.

Types for Untyped Languages, Northeastern University CCIS Open House, Boston, MA, March 2007.

Interlanguage Migration: From Scripts to Programs, Dynamic Languages Symposium (DLS), Portland, OR, October 2006.

Building Languages

Developing Racket, I have helped to build a programmable programming language that allows developers to create custom languages for everything from pattern matching to type checking.

Papers

Run Your Research: On the Effectiveness of Lightweight Mechanization. With Casey Klein, John Clements, Christos Dimoulas, Carl Eastlund, Matthias Felleisen, Matthew Flatt, Jay McCarthy, Jon Rafkind and Robert Bruce Findler.
Symposium on Principles of Programming Languages (POPL), January 2012.
[ PDF | Models ]

Languages as Libraries. With Vincent St-Amour, Ryan Culpepper, Matthew Flatt and Matthias Felleisen.
Conference on Programming Language Design and Implementation (PLDI), June 2011.
[ PDF | ACM DL ]

Extensible Pattern Matching in an Extensible Language (Preprint).
October 2010.
[ PDF | arXiv ]

Extensible Pattern Matching in an Extensible Language (Abstract).
Symposium on Implementation and Application of Functional Languages, September 2010.
[ PDF | Utrecht Technical Report ]

Where are you going with those types? (Abstract). With Vincent St-Amour, Matthew Flatt and Matthias Felleisen.
Symposium on Implementation and Application of Functional Languages, September 2010.
[ PDF | Utrecht Technical Report ]

Advanced Macrology and the Implementation of Typed Scheme. With Ryan Culpepper and Matthew Flatt.
Workshop on Scheme and Functional Programming, September 2007.
[ PDF | Proceedings ]

Talks

Languages as Libraries, Conference on Programming Language Design and Implementation (PLDI), San Jose, MA, June 2011.

Languages as Libraries, MIT CSAIL Programming Languages Working Group, Cambridge, MA, May 2011.

Extensible Pattern Matching in an Extensible Language, Implementation and Application of Functional Languages, Alphen an der Rijn, Netherlands, September 2010.

Analysis and Verification

I am developing analysis and verification techniques for modular programs with rich specifications.

Papers

Abstract Reduction Semantics for Modular Higher-Order Contract Verification (Preprint). With David Van Horn.
July 2011.
[ PDF | arXiv ]

Semantic Solutions to Program Analysis Problems. With David Van Horn.
Fun Ideas and Thoughts Session at the Conference on Programming Language Design and Implementation, June 2011.
[ PDF | arXiv ]

Talks

Semantic Solutions to Program Analysis Problems, Fun Ideas and Thoughts Session at the Conference on Programming Language Design and Implementation, San Jose, CA, June 2011.

JavaScript

In collaboration with Mozilla Research and ECMA Technical Committee 39, I am working on the next version of the JavaScript language, focusing on making JavaScript an effective language for building large-scale web applications.

Papers

Modules for JavaScript (Preprint). With Dave Herman.
April 2011.
[ PDF ]

Proposals

Modules and Module Loaders. With Dave Herman.
Drafts from September 2011.

Private Names. With Dave Herman and Allen Wirfs-Brock.
Draft from September 2011.

Talks

The Future of the Web: It's coming!, Childrens Hospital developers group, Boston, MA, December 2011.

Fortress

In conjunction with the Sun Labs Programming Language Research Group, I helped to develop Fortress, a new language for high-performance, multicore and scientific computing.

Papers

The Fortress Language Specification. With Eric Allen, David Chase, Joe Hallett, Victor Luchangco, Jan-Willem Maessen, Sukyoung Ryu and Guy Steele.
Sun Microsystems Technical Report, Version 1.0, 2008.
[ PDF ]

A Core Calculus of Metaclasses. With Eric Allen.
Workshop on Foundations of Object-Oriented Languages (FOOL), January 2005.
[ PDF | Proceedings ]

Activities

ICFP 2012, Program Committee

STOP 2012, Chair

Scheme Workshop 2011, Program Committee

NEPLS 25, Chair

TLDI 2011, Program Committee

FOOL 2010, Program Committee

TFP 2010, Program Committee

Teaching

In Spring 2011, I taught a new honors section of CS 2510 with David Van Horn.

In Spring 2009, I taught CS U211.

In Fall 2005, I taught CS U213.

Personal

In the rest of my life, I play Ultimate and I go outside.

My wife, Katie Edmonds, is a graduate student in the Wagner lab at the Harvard Medical School.