Staff

Mitch Wand
Joined Northeastern, 1985
Joined Indiana University, 1973
PhD, MIT, 1973
BS, MIT, 1969

Over the years, I have worked on a variety of problems associated with semantics of programming languages. Here is a selected list, in roughly reverse chronological order: probabilistic programming languages, binding-safe programming, aspect-oriented programming, analysis-based program transformation, compiler correctness proofs, continuations, macros.

Will Clinger

I focus on the design, specification, and implementation of functional and higher-order programming languages. My research interests stem from programming languages’ ability to connect mathematically sophisticated theories of syntax and semantics to economically important details of computer hardware and software. In recent years, I have designed algorithms for garbage collection for Larceny -- a vehicle for experimental research on compiler optimization and garbage collection. Larceny has become one of the leading multiplatform implementations of the Scheme programming language.

Matthias Felleisen
Matthias Felleisen
Trustee Professor
matthias@ccs.neu.edu
http://ccs.neu.edu/home/matthias
Joined Northeastern, 2001
Joined Rice, 1987
PhD, Indiana University, 1987
Diplom TH Karlsruhe, 1984
MS University of Arizona, 1981

I explore all aspects of program design and programming language design. My current research involves work on behavioral software contracts, gradual typing of scripting languages, language interoperability, language extensibility, and module systems. I also engage in educational outreach work. For the past 20 years, I have worked with middle schools, high schools, after-school programs, and college faculty on injecting design ideas into mathematics and computer science courses. Such educational interactions often inspire our research, and many research efforts end up improving my educational work.

Olin Shivers
Joined Northeastern, 2006
Joined Georgia Tech, 1999
Joined MIT, 1993
PhD, Carnegie Mellon University, 1991
BS, Yale University, 1983

My principal research interests include the construction of robust, complex software artifacts and the design of tools that assist programmers in this task; the interaction between systems and programming languages, primarily higher-order typed languages; the design and analysis of programming languages; and compilers. Before coming to Northeastern, I was a research scientist at MIT’s Artificial Intelligence Lab, a founder and CTO of the Smartleaf Corporation, and a faculty member at the Georgia Institute of Technology.

Amal Ahmed
Amal Ahmed
Assistant Professor
amal@ccs.neu.edu
http://ccs.neu.edu/home/amal
Joined Northeastern, 2011
Joined Indiana University, 2009
Joined Toyota Technological Institute, 2006
Joined Harvard University, 2004
PhD Princeton University, 2004

I work on problems involving semantics of programming languages, including advanced type systems for programs that manipulate memory, correct and secure compilation, gradual typing, and language interoperability. My prior work has shown how to scale the logical relations proof method to realistic languages. This technique has been used in numerous contexts, e.g., to prove compiler correctness, to verify concurrent code, to establish guarantees provided by type systems for confidentiality or differential privacy. My present focus is on how to build verified compilers that ensure safe linking of code compiled from different programming languages.

Ryan Culpepper
Ryan Culpepper
Research Scientist
ryanc@ccs.neu.edu
http://ccs.neu.edu/home/ryanc
Joined Northeastern, 2013
Post-doc University of Utah, 2011
PhD, Northeastern University, 2010

Born in Houston, TX, left, went back to go to Rice University. Interested in PL and compilers. I read during the summer and play table tennis during the winter. I'm still looking for someone up here who has heard of disc golf.

Stephen Chang
Stephen Chang
Post-doctoral researcher
stchang@ccs.neu.edu
http://ccs.neu.edu/home/stchang
Joined Northeastern, 2014
PhD, Northeastern University, 2014
MS, Harvard University, 2008
BSE, Princeton University, 2001

I'm interested in the design of practical programming languages.

Ben Lerner
Ben Lerner
Lecturer
blerner@ccs.neu.edu
Joined Northeastern, 2014
PhD, University of Washington, 2011

I have worked on problems in web programming semantics, including designing and analyzing extensibility mechanisms for browsers, studying the interactions between extensions and each other or with intended browser behavior. With colleagues at Brown, I have been helping to design and implement a language that focuses on the linguistic support needed for introductory-level pedagogy.

Jan Vitek
Joined Northeastern, 2014
Joined Purdue, 1999
PhD, University of Geneva, 1999
MSc, University of Victoria, 1995

I work on the design and implementation of programming languages. I led the implementation of the first real-time Java virtual machine to be flight-tested. With Noble and Potter, I proposed what became known as Ownership Types. I tried to understand JavaScript by dynamic analysis and am now looking at supporting scalable data analysis in R.

Paley Li
Paley Li
Post-doctoral researcher
pa.li@neu.edu
https://palez.github.io
Joined Northeastern, 2015
PhD, Victoria University of Wellington, 2015

My research interests is in programming languages, specifically type theory, ownership types, and local reasoning for memory management. Most recently, I have been working on formalising object cloning for ownership types.

Gabriel Scherer
Joined Northeastern, 2016

I'm interested in theoretical aspects of type systems, programming language implementation, general programming language concepts, and even some syntactic aspects. I have a preference for the formalizable aspects, or formalizable approaches to programming language aspects, rather than the often subjective appeal to taste or intuition.

Fillip Křikava
Fillip Křikava
Post-doctoral researcher
f.krikava@neu.edu
http://fikovnik.net
Joined Northeastern, 2016
Joined INRIA Lille, 2013
PhD, University of Nice Sophia-Antipolis, 2013

Coming from software engineering and domain-specific modeling. I’m interested in various aspects of programming languages in particular in static and dynamic program analysis. Most recently I have been working on dynamic tracing in R.

Frank Tip
Joined Northeastern, 2016
Joined Samsung Research America, 2014
Joined University of Waterloo, 2012
Joined IBM T.J. Watson Research Center, 1995
PhD University of Amsterdam, 1995

My research is in the areas of Programming Languages and Software Engineering and is focused on the use of program analysis in tools that help increase programmer productivity and software quality. Specific topics that I've worked on in recent years include tools for detecting and localizing bugs, refactoring, test generation, and optimization.

Heather Miller
Heather Miller
Assistant Clinical Professor
heather@ccs.neu.edu
http://heather.miller.am
Joined Northeastern, 2016
PhD, EPFL, 2015

I work on the intersection of programming languages and distributed systems. I am a member of the Scala team, and have worked on Scala's concurrency libraries including Scala's futures and promises library, and compile-time support for distributed programs. Much of my work is focused on transferring research results into practical use. Before joining Northeastern, I co-founded and served as the executive director of a new center at EPFL for research, education, and open source development surrounding the Scala programming language, called the Scala Center.

Students

Tony Garnock-Jones
Tony Garnock-Jones
Advisor: Matthias Felleisen
tonyg@ccs.neu.edu
http://www.ccs.neu.edu/home/tonyg
Joined 2010

I’m working on constructing programming languages that incorporate ideas from networking and from messaging middleware.

Jonathan Schuster
Jonathan Schuster
Advisor: Olin Shivers
schuster@ccs.neu.edu
http://ccs.neu.edu/home/schuster
Joined 2011

Having come from a development background, my research interests lie in making software development easier by improving programming languages and the ecosystems surrounding them. Currently, my research focuses on verifying actor-based programs (such as those written in Erlang or the Akka framework) against behavioral specifications expressed as simple name-passing automata.

Justin Slepak
Justin Slepak
Advisor: Olin Shivers
jrslepak@ccs.neu.edu
http://ccs.neu.edu/home/jrslepak
Joined 2011

I came to Northeastern after spending several years studying in Upper Michigan. My current work focuses on array-oriented languages as an expressive way to write data-parallel numeric processing code.

William J. Bowman
William J. Bowman
Advisor: Amal Ahmed
wilbowma@ccs.neu.edu
https://www.williamjbowman.com
Joined 2012

I want to make programs easier to design, read, and write. I currently work on verifying compilers for advanced languages, and sometimes dabble in meta-programming.

Leif Andersen
Leif Andersen
Advisor: Matthias Felleisen
leif@ccs.neu.edu
http://ccs.neu.edu/home/leif
Joined 2014

I study programming languages in PLT at Northeastern University. I study compilers, domain specific languages for writing compilers, and performance tools.

Andrew Cobb
Andrew Cobb
Advisor: Olin Shivers
andrew.cobb@gmail.com
Joined 2014

Ben Greenman
Ben Greenman
Advisor: Matthias Felleisen
types@ccs.neu.edu
http://ccs.neu.edu/home/types
Joined 2014

I like constructions. My current goal is to lower the huge run-time cost of gradual typing. I believe that safely mixing languages is the way of the future.

Max New
Max New
Advisor: Amal Ahmed
maxnew@ccs.neu.edu
http://maxsnew.github.io
Joined 2014

I like reasonable programming languages.

Sam Caldwell
Sam Caldwell
Advisor: Matthias Felleisen
samc@ccs.neu.edu
http://ccs.neu.edu/home/samc
Joined 2015

I came to Northeastern from Austin, Texas, where I did my undergrad and spent several years working in embedded software. I’m interested in using ideas and tools from programming languages to make the world a better place for everyone that uses computers.

Benjamin Chung
Benjamin Chung
Advisor: Jan Vitek
bchung@ccs.neu.edu
http://benchung.github.io
Joined 2015

I usually work on types, currently focusing on gradual type systems.

Olivier Flückiger
Olivier Flückiger
Advisor: Jan Vitek
o@o1o.ch
http://www.o1o.ch/about
Joined 2015

My passion lies in language implementation — creating the tools and techniques required to get from powerful abstractions to efficient execution.

Ming-Ho Yee
Ming-Ho Yee
Advisor: Jan Vitek
mh@mhyee.com
http://mhyee.com/
Joined 2016

I work on the design and implementation of programming languages. My previous work also involved static program analysis, and building tools for programmers to make software development easier.

Daniel Patterson
Daniel Patterson
Advisor: Amal Ahmed
dbp@ccs.neu.edu
https://dbp.io
Joined 2016

I'm interested in language and type system interoperability — in particular, languages with very different type systems interacting easily and safely.

PRL Alumni and Former Members

Former Associates (Research Scientists, Post-Docs)