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. Stephen Chang, Alex Knauth, and Emina Torlak.
45th ACM SIGPLAN Symposium on Principles of Programming Languages (POPL 2018), Los Angeles, CA, USA, January 2018 (conditionally accepted).
[  pdf  | abstract  | code repo  | artifact instructions, VirtualBox image (2.2GB)  ]

Super 8 Languages for Making Movies. Leif Andersen, Stephen Chang, and Matthias Felleisen.
22nd ACM SIGPLAN International Conference on Functional Programming (ICFP 2017), Oxford, UK, Sept 2017.
[  pdf  ]

Type Systems as Macros. Stephen Chang, Alex Knauth, and Ben Greenman.
44th Symposium on Principles of Programming Languages (POPL 2017), Paris, France, January 2017.
[  pdf  | abstract  | code repo  | artifact instructions, VirtualBox image (2.1GB)  ]

Profiling For Laziness. Stephen Chang and Matthias Felleisen.
41st Symposium on Principles of Programming Languages (POPL 2014), San Diego, CA, USA, January 2014.
[  pdf  | abstract  ]

Laziness By Need. Stephen Chang.
22rd European Symposium on Programming (ESOP 2013), Rome, Italy, March 2013.
[  pdf  | abstract  | slides  ]

The Call-by-need Lambda Calculus, Revisited. Stephen Chang and Matthias Felleisen.
21st European Symposium on Programming (ESOP 2012), Tallinn, Estonia, March 2012.
[  pdf  | abstract  | slides  | arXiv  ]

From Stack Traces to Lazy Rewriting Sequences. Stephen Chang, Eli Barzilay, John Clements, and Matthias Felleisen.
Symposium on Implementation and Application of Functional Languages (IFL 2011), Lawrence, Kansas, USA, October 2011.
[  pdf  | abstract  | slides  | arXiv (previous version)  ]

Evaluating Call By Need on the Control Stack. Stephen Chang, David Van Horn, and Matthias Felleisen.
11th Symposium on Trends in Functional Programming (TFP 2010), Norman, Oklahoma, USA, May 2010.
Best Student Paper award
[  pdf  | abstract  | slides  | arXiv  ]


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

Other Talks

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

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