Staff

Mitch Wand
Mitch Wand
Emeritus Professor
wand@ccs.neu.edu
http://ccs.neu.edu/home/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.

Karl Lieberherr
Joined Northeastern, 1985
Joined Princeton, 1979
Ph.D. and Diplom ETH Zurich, 1968-1977

My current research is about using deep reinforcement learning and Monte Carlo Tree Search (a Google/DeepMind algorithm) to synthesize instance-based programs to solve problems formulated in interpreted first-order logic, e.g., algorithmic problems. My earlier work in programming methodology centers on using (1) context-free grammars for abstract data types and domain-specific languages (the Demeter Method); (2) a succinct and exact definition of a detector for an interesting class of software design problems: The Law of Demeter (Don't Talk to Strangers); it allows for a direct application when writing object-oriented code; (3) aspect-oriented programming. I am also interested in problem-solving methodology in algorithms and I helped to develop the classical golden-ratio result for Satisfiability.

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
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.

Ben Lerner
Ben Lerner
Associate Teaching Professor
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.

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.

Arjun Guha
Joined Northeastern, 2020
Joined University of Massachusetts Amherst, 2013
Postdoc, Cornell University, 2012–2013
PhD, Brown University, 2012
BA, Grinnell College, 2006

I have broad interests in programming languages, but usually work on language-based approaches to security, reliability, and performance. I've spent several years thinking about JavaScript (semantics, type checking, static analysis, reactive programming, and more). I also spent several years working on programming languages for software-defined networking. These days, I study problems that arise in cloud computing, system configurations, and robotics, through the lens of programming languages.

Jon Bell
Jon Bell
Assistant Professor
jon@jonbell.net
https://www.jonbell.net/
Joined Northeastern, 2020
Joined George Mason University, 2016
PhD, Columbia University, 2016
M.Phil, Columbia University, 2014
MS, Columbia University, 2011
BS, Columbia University, 2010

I apply a systems perspective to software engineering challenges, observing the issues that developer face when creating reliable software, and then designing new mechanisms to support developers. My research focuses on improving existing developer-written tests, making them run faster and more reliably while amplifying them to be more comprehensive and also tracking their overall quality. Rather than focus solely on finding a handful of high-value “million dollar bugs” in a small pool of high-assurance software, my research aims to have very broad impacts, helping everyday developers just as much as experts.

Steven Holtzen
Joined Northeastern, 2021
PhD, University of California, Los Angeles, 2021

My research focuses on programming languages and artificial intelligence. In particular, my goal is to use programming languages and program analysis techniques as a foundation for specifying and reasoning about probabilistic models. Towards this end I am interested in the design, implementation, and applications of probabilistic programming languages; foundations of probabilistic inference and tractable probabilistic modeling; automated reasoning; and probabilistic verification.

Daniel Patterson
Daniel Patterson
Assistant Teaching Professor
dbp@dbpmail.net
https://dbp.io
Joined Northeastern Faculty, 2022
PhD, Northeastern University, 2022

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

Ryan Doenges
Joined Northeastern, 2023
PhD, Cornell University, 2023
BS, University of Washington, 2017

I study computer systems using tools from programming languages and formal verification, especially domain-specific languages (DSLs). My PhD introduced mechanized semantics and certified translation validators for P4, a networking DSL. My postdoctoral research focuses on DSLs for hardware.

Students

Ming-Ho Yee
Ming-Ho Yee
Advisor: Arjun Guha
mhyee@ccs.neu.edu
http://mhyee.com/
Joined Northeastern, 2016

I'm interested in programming language design and implementation, as well as static program analysis.

Michael Ballantyne
Michael Ballantyne
Advisor: Matthias Felleisen
michael.ballantyne@gmail.com
http://mballantyne.net
Joined Northeastern, 2017

I find delight in programming languages that allow extension of their notation, syntactic forms, type systems, runtime behaviors, and development environments. My research aims to build the foundations needed to bring these extensibility features into widespread use.

Olek Gierczak
Olek Gierczak
Advisor: Amal Ahmed
gierczak.o@northeastern.edu
Joined Northeastern, 2019

I like reasoning about programming languages and compilers, using pencil and paper or proof assistants.

Cameron Moy
Cameron Moy
Advisor: Matthias Felleisen
camoy@ccs.neu.edu
http://camoy.name
Joined Northeastern, 2019

I enjoy flexible programming languages and elegant software. I'm interested in designing tools that enable everyday developers to build more robust programs.

Sam Stites
Sam Stites
Advisor: Steven Holtzen
prl@s.ptr.dev
Joined Northeastern, 2019

I research probabilistic programming languages, specifically designing languages that let users fine-tune the (statistical) inference process.

Nate Yazdani
Nate Yazdani
Advisor: Amal Ahmed
nyazdani@ccs.neu.edu
https://nateyazdani.github.io/
Joined Northeastern, 2019
MS, University of Washington, 2019

I like types, proofs, and occasionally programs.

Andrew Wagner
Andrew Wagner
Advisor: Amal Ahmed
ahwagner@ccs.neu.edu
Joined Northeastern, 2020
BS, Brown University, 2020

I like to design domain-specific languages with strong guarantees, which are usually supported by rich type systems and formal methods. My current research is on language-based security.

Katherine Hough
Katherine Hough
Advisor: Jonathan Bell
hough.k@northeastern.edu
Joined Northeastern, 2020
MS, George Mason University
BS, George Mason University

My research focuses on helping developers identify and correct software bugs and vulnerabilities.

Donald Pinckney
Donald Pinckney
Advisor: Arjun Guha
donald_pinckney@icloud.com
https://donaldpinckney.com
Joined Northeastern, 2020
MS, UMass Amherst
BS, UC Davis

I enjoy working on formalizing semantics of systems so as to uncover surprising behavior, and fix related bugs. Recently I'm working on understanding the semantics of package managers.

Michelle Thalakottur
Michelle Thalakottur
Advisor: Amal Ahmed, Frank Tip
michelledt@ccs.neu.edu
https://michelledaviest.github.io/
Joined Northeastern, 2021

I like thinking about programming languages and compilers.

John Gouwar
Joined Northeastern, 2021
BA, Grinnell College

I really enjoy functional programming and would like to develop languages that allow for the use of functional programming techniques in areas that they have not been used before.

John Li
John Li
Advisor: Amal Ahmed
johnli0135@gmail.com
Joined Northeastern, 2021

I like logic, semantics, and interactive theorem proving.

Satyajit Gokhale
Satyajit Gokhale
Advisor: Frank Tip
gokhale.sa@northeastern.edu
Joined PRL, 2021
MS, Northeastern University

I am interested in program analysis and security. I am currently working on static analysis for JavaScript, and security in PLCs.

James Perretta
James Perretta
Advisors: Jonathan Bell and Arjun Guha
perretta.j@northeastern.edu
Joined Northeastern, 2021
MS, University of Michigan

I completed my master's degree at University of Michigan, where I also developed an automated grading system that is used by over 5000 students per semester. My research interests lie at the intersection of PL and Software Engineering, and my current work is focused on mutation testing.

Yangtian Zi
Yangtian Zi
Advisor: Arjun Guha
ytzi@ccs.neu.edu
http://ytzi.org
Joined Northeastern, 2021

My interests are dynamic languages implementations, Just-in-time compilers, and WebAssembly.

Max Bernstein
Max Bernstein
Advisor: Frank Tip and Jan Vitek
bernstein.ma@northeastern.edu
https://bernsteinbear.com
Joined Northeastern, 2022

Minsung Cho
Minsung Cho
Advisor: Steven Holtzen
minsung@ccs.neu.edu
https://cho.minsung.pl
Joined Northeastern, 2022
BS, Carnegie Mellon University

I'm a pure math ex-pat using logic and algebra to make probabilistic programming better.

Gwenyth Lincroft
Gwenyth Lincroft
Advisor: Jonathan Bell
lincroft.g@northeastern.edu
Joined Northeastern, 2022
BS, NC State University

I am interested in improving tools used by data scientists.

Francesca Lucchetti
Francesca Lucchetti
Advisor: Arjun Guha
lucchetti.f@northeastern.edu
Joined Northeastern, 2022
BA, Vassar College, 2022

I’m interested in developing robust, performant Large Language Models for code that can be deployed with limited compute. I like taking apart transformer layers to interpret their inner workings.

Farideh Khalili
Farideh Khalili
Advisor: Frank Tip
khalili.f@northeastern.edu
Joined Northeastern, 2023

I'm interested in program analysis and optimization.

Liam DeVoe
Liam DeVoe
Advisor: Jonathan Bell
devoe.l@northeastern.edu
https://tybug.github.io/
Joined Northeastern, 2023
B.S. University of Maryland

I'm interested in property based testing, open-source ecosystems, formal verification, and testing of all kinds.

PRL Alumni and Former Members

Former Associates (Research Scientists, Post-Docs, Visiting Faculty)

Former Faculty

© Copyright Programming Research Laboratory 2015-2021 | made by Catchexception s.r.o. | source on GitHub

top