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
Amal Ahmed
Associate 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.

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.

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.

Jason Hemann
Jason Hemann
Clinical Lecturer
jhemann@ccis.neu.edu
http://hemann.pl
Joined Northeastern, 2018
PhD, Indiana University, 2018

My research interests include functional and logic programming. I focus on embeddings and extensions to support logic programming in numerous host languages and transforming functional programs to relational ones. The microKanren model has inspired scores of implementations (more than 120), in over 40 host languages, in just five years. My other interests concern novel uses of logic programming and symbolic constraint systems and typesafe embeddings of logic languages.

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.

Students

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

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

Sam Caldwell
Sam Caldwell
Advisor: Matthias Felleisen
samc@ccs.neu.edu
http://ccs.neu.edu/home/samc
Joined Northeastern, 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 Northeastern, 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 Northeastern, 2015

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

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

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

Ming-Ho Yee
Ming-Ho Yee
Advisor: Jan Vitek
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.

Aviral Goel
Aviral Goel
Advisor: Jan Vitek
goel.aviral@gmail.com
http://aviral.io/
Joined Northeastern, 2017

Currently, I am working on static program analysis. I am interested in all aspects of programming languages — syntax, semantics, type-systems, and compilers.

Aaron Weiss
Aaron Weiss
Advisor: Amal Ahmed
weiss@ccs.neu.edu
https://aaronweiss.us/
Joined Northeastern, 2017

I'm interested in type systems and verification. I want to help build a world where the critical software that runs our lives is provably safe.

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.

Artem Pelenitsyn
Artem Pelenitsyn
Advisor: Jan Vitek
a.pelenitsyn@gmail.com
http://mmcs.sfedu.ru/~ulysses
Joined Northeastern, 2018

I am interested in typed functional programming and corresponding languages, mostly Haskell, type and effect systems, mathematics of program construction. Lately, I was working on a principled approach to the Julia programming language.

Julia Belyakova
Julia Belyakova
Advisor: Jan Vitek
julbinb@gmail.com
http://julbinb.github.io/
Joined Northeastern, 2018
Joined Czech Technical University in Prague, 2017
Joined Southern Federal University, 2014
MS, Southern Federal University, 2014

My primary research interests are programming languages and type theory. I am also fond of theorem proving, generic programming, object-oriented and functional programming, software engineering, programming by contracts, software testing. Currently I work on formalizing subtyping for the Julia programming language.

Alexi Turcotte
Alexi Turcotte
Advisor: Jan Vitek
alexi@ccs.neu.edu
https://reallytg.github.io/
Joined Northeastern, 2018

I like reasoning about programs and implementing languages. Programming makes me happy. Programming about programming makes me happier.

Ellen Arteca
Ellen Arteca
Advisor: Frank Tip
ellen@ccs.neu.edu
https://emarteca.github.io/
Joined Northeastern, 2018

My previous work was in gradual typing; now I'm starting a project looking at program analysis for asynchronous JavaScript.

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.

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

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
John Gouwar
Advisor: Arjun Guha
gouwar.j@northeastern.edu
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.

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