Stephen Chang

308 West Village H
stchang at ccs dot neu dot edu

Associate Research Scientist [cv]
Northeastern University
College of Computer and Information Science
Programming Research Lab

Research Interests | Papers | Dissertation | Other Talks | Teaching

Research interests

I like extensible programming languages that support linguistic reuse. I'm specifically interested in compile-time reuse. Programmers should be able to create arbitrary compile-time systems, e.g., type systems, by reusing components from a general, expressive framework, analogous to how eDSLs typically reuse run-time components.

My dissertation explored lazy evaluation from both a theoretical and a practical perspective.

I also hack on Racket.


Symbolic Types for Lenient Symbolic Execution (POPL 2018).
Stephen Chang, Alex Knauth, and Emina Torlak.
[  pdf  | abstract  | code repo  | artifact instructions, VirtualBox image (2.2GB)  ]

Super 8 Languages for Making Movies (Functional Pearl) (ICFP 2017).
Leif Andersen, Stephen Chang, and Matthias Felleisen.
[  pdf  ]

Type Systems as Macros (POPL 2017).
Stephen Chang, Alex Knauth, and Ben Greenman.
[  pdf  | abstract  | code repo  | artifact instructions, VirtualBox image (2.1GB)  ]

Profiling For Laziness (POPL 2014).
Stephen Chang and Matthias Felleisen.
[  pdf  | abstract  ]

Laziness By Need (ESOP 2013).
Stephen Chang.
[  pdf  | abstract  | slides  ]

The Call-by-need Lambda Calculus, Revisited (ESOP 2012).
Stephen Chang and Matthias Felleisen.
[  pdf  | abstract  | slides  | arXiv  ]

From Stack Traces to Lazy Rewriting Sequences (IFL 2011).
Stephen Chang, Eli Barzilay, John Clements, and Matthias Felleisen.
[  pdf  | abstract  | slides  | arXiv (previous version)  ]

Evaluating Call By Need on the Control Stack (TFP 2010) (best student paper).
Stephen Chang, David Van Horn, and Matthias Felleisen.
[  pdf  | abstract  | slides  | arXiv  ]


On the Relationship Between Laziness and Strictness. Northeastern University, May 2014.
[  pdf  ]

Other Talks

Building Typed Languages with Racket. Racket Summer School, August 2018.
[  lecture notes  | slides 1  | slides 2  ]

Type Systems as Macros. University of Washington, March 2017.
[  abstract  | video  ]

Type Systems as Macros. sixth RacketCon, September 2016.
[  abstract  | slides 1  | slides 2  | video  ]

A Boost-Inspired Graph Library for Racket. fourth RacketCon, September 2014.
[  abstract  | slides  | video  ]