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.
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.
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.
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.
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.
Associate Teaching Professor
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.
Joined Purdue, 1999
PhD, University of Geneva, 1999
MSc, University of Victoria, 1995
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.
Joined University of Massachusetts Amherst, 2013
Postdoc, Cornell University, 2012–2013
PhD, Brown University, 2012
BA, Grinnell College, 2006
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.
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.
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.
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.
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.
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.
Advisor: Amal Ahmed
I like reasoning about programming languages and compilers, using pencil and paper or proof assistants.
Advisor: Steven Holtzen
I research probabilistic programming languages, specifically designing languages that let users fine-tune the (statistical) inference process.
Advisor: Amal Ahmed
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.
Advisor: Jonathan Bell
MS, George Mason University
BS, George Mason University
My research focuses on helping developers identify and correct software bugs and vulnerabilities.
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.
Advisor: Arjun Guha
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.
Advisor: Amal Ahmed
I like logic, semantics, and interactive theorem proving.
Advisor: Frank Tip
MS, Northeastern University
Advisors: Jonathan Bell and Arjun Guha
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.
PRL Alumni and Former Members
- Dino Oliva 1992 (dissertation)
- Ian Holland 1992 (dissertation) (First Swampscott Church)
- Cun Xiao 1994 (dissertation) (Oracle)
- Ignacio Silva-Lepe 1994 (dissertation) (IBM Research, Yorktown)
- Paul Bergstein 1994 (dissertation) (UMass, Dartmouth)
- Paul Steckler 1994 (dissertation) (Galois Connections)
- Walter Hürsch 1995 (dissertation) (BlueCare AG)
- David Gladstein 1996 (dissertation)
- Linda Seiter 1996 (dissertation) (John Carrol University)
- Crista Lopes 1997 (dissertation) (UC Irvine)
- Greg Sullivan 1997 (dissertation) Advisor: Mitch Wand, Employer: BAE Systems
- Igor Siveroni 2001 (dissertation)
- Lars Hansen 2001 (dissertation)
- Paul Graunke 2003 (dissertation) (Galois Connections)
- Galen Williamson 2004
- Johan Ovlinger 2004 (dissertation)
- Doug Orleans 2005 (dissertation) (Gensym)
- John Brinckerhoff Clements 2005 (dissertation) (California Polytechnic, San Luis Obispo, CA)
- Philippe Meunier 2006 (dissertation) (Sirindhorn International Institute of Technology, Tahmmasat University)
- Vassilis Koutavas 2008 (dissertation) (Trinity College, Dublin)
- Richard Cobbe 2009 (dissertation) (MathWorks)
- Bryan D. Chadwick 2010 (dissertation) (Broadway Technology)
- Dave Herman 2010 (dissertation) (Mozilla Research)
- David Fisher 2010 (dissertation)
- Pengcheng Wu 2010 (dissertation)
- Peter Dillinger 2010 (dissertation) (Coverity, Inc.)
- Ryan Culpepper 2010 (dissertation) (Northeastern University)
- Sam Tobin-Hochstadt 2010 (dissertation) Advisor: Matthias, now at Indiana University
- Theo Skotiniotis 2010 (dissertation)
- Felix Klock 2011 (dissertation) (Mozilla Research)
- Carl Eastlund 2012 (dissertation) (Jane Street Group, LLC)
- Christos Dimoulas 2012 (dissertation) (Harvard University)
- Dimitris Vardoulakis 2012 (dissertation) (Google)
- Jesse A. Tov 2012 (dissertation) (Northwestern University)
- Stevie Strickland 2012 (dissertation) (Google)
- Aaron J. Turon 2013 (dissertation) (Mozilla Research)
- Ahmed Abdelmeged 2014 (dissertation)
- James T. Perconti 2014
- Dionna Amalie Glaze 2015 (dissertation) (Google)
- Erik Silkensen 2015
- Phillip Mates 2015 (Igalia)
- Vincent St-Amour 2015 (dissertation) Advisor: Matthias, now at Northwestern University
- Asumu Takikawa 2016 (dissertation) (Igalia)
- Paul Stansifer 2016 (dissertation)
- Tony Garnock-Jones 2017 (dissertation)
- Kevin Clancy 2018 (Carnegie Mellon University)
- William J. Bowman 2018 (dissertation) (University of British Columbia)
- Andrew Cobb 2019
- Celeste Hollenbeck 2019 (University of Edinburgh)
- Di Zhong 2019
- Hyeyoung Shin 2019 (Czech Technical University in Prague)
- Jonathan Schuster 2019 (dissertation) (Google)
- Ben Greenman 2020 (dissertation) (Brown University)
- Justin Slepak 2020 (dissertation) (Facebook)
- Max S. New 2020 (dissertation) (Wesleyan University)
- Aaron Weiss 2022 (Roblox)
- Daniel Patterson 2022 (dissertation) (Northeastern University)
- Leif Andersen 2022 (UMass Boston)
- Olivier Flückiger 2022 (dissertation)
Former Associates (Research Scientists, Post-Docs, Visiting Faculty)
- Mark Krentel 1989 (Rice University)
- Rebecca Parsons 1992 (ThoughtWorks)
- Amr Sabry 1994 (Indiana University)
- Andrew K. Wright 1994 (Cisco)
- Dorai Sitaram 1994 (Verizon Labs, Waltham, MA)
- Kathi Fisler 1996 (Worcester Polytechnic Institute)
- Cormac Flanagan 1997 (UC Santa Cruz)
- Joe Marshall 1999 (Google)
- Mario Latendresse 1999 (SRI International)
- Matthew Flatt 1999 (University of Utah)
- Shriram Krishnamurthi 2001 (Brown University)
- Robby Findler 2002 (Northwestern University)
- Kenichi Asai 2004 (Ochanomizu University)
- Riccardo Pucella 2004 (Olin College)
- Eli Barzilay 2005
- David van Horn 2009 (University of Maryland)
- Fillip Křikava 2017 (Czech Technical University in Prague)
- Gabriel Scherer 2017 (INRIA Saclay)
- Konrad Siek 2017 (Czech Technical University in Prague)
- Paley Li 2017 (Oracle)
- Ryan Culpepper 2017 (Czech Technical University in Prague)
- Saba Alimadadi 2019 (Simon Fraser University)
- John H. Reppy 2020 (visited from University of Chicago)
- Stephen Chang 2020 (University of Massachusetts Boston)
- John Boyland 2021 (visited from University of Wisconsin-Milwaukee)