Sam Tobin-Hochstadt

Tree

The most important decisions a scholar makes are what problems to work on.

- James Tobin

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

News

I will be on the Program Committee for OOPSLA 2013.

Our paper on types and contracts for delimited control will appear at ESOP 2013.

Our papers on optimization coaching, gradual typing for first-class classes, higher-order symbolic execution and chaperones were presented at OOPSLA 2012, and the paper on gradual typing for first-class classes won best student paper.

I presented a tutorial on Typed Racket at RacketCon 2012; both code and video are available.

RacketCon 2012 was held in Boston in October, and videos are now available.

Scripts to Programs 2012 was a success, and the informal proceeding are now available.

I was interviewed by Charles Torre from Channel 9 about my work on JavaScript modules. You can watch the video here.

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

Constraining Delimited Control with Contracts. With Asumu Takikawa and T. Stephen Strickland.
European Symposium on Programming (ESOP), March 2013.
[ PDF ]

Gradual Typing for First-class Classes. With Asumu Takikawa, T. Stephen Strickland, Christos Dimoulas and Matthias Felleisen.
Object Oriented Programming, Systems, Languages and Applications (OOPSLA), October 2012.
[ PDF ]

Proceedings of the Third Workshop on Script to Program Evolution.
NU CCIS Technical Report NU-CCIS-12-02, June 2012.
[ PDF ]

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

Chaperones and Impersonators: Runtime support for reasonable interposition. With T. Stephen Strickland, Robert Bruce Findler and Matthew Flatt.
Object Oriented Programming, Systems, Languages and Applications (OOPSLA), October 2012.
[ PDF ]

Optimization Coaching. With Vincent St-Amour and Matthias Felleisen.
Object Oriented Programming, Systems, Languages and Applications (OOPSLA), October 2012.
[ PDF ]

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.

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

Teaching

Personal

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

My wife, Katie Edmonds, is a post-doc in the Marinchev lab at the Boston University Medical Campus.