Photo gallery


Amal Ahmed

Professor Ahmed's research concerns programming languages and language-based security, with a focus on semantics, type systems, security-preserving compilation, and software contracts. She is known for her work on logical relations, a proof method for establishing a wide variety of properties of programs, programming languages, and compilers, including type safety, equivalence of program components, correctness of compiler transformations and optimizations, and confidentiality guarantees in languages for information-flow security.

William D. Clinger

He's from Texas (BS, 1975) but served time in Massachusetts (PhD, MIT, 1981, and at Northeastern since 1994). Collects garbage and lifts lambdas. Plays guitar, sings with little provocation, and has performed country and western tonal music.

Matthias Felleisen

For the past 25 years, I have lived in Arizona, Indiana, Pennsylvania, and Texas. My PhD is from Dan Friedman (1987), and I also wrote a number of Little books with him. With my own PhD students, I authored How to Design Programs and started the DrScheme project. In 2001, my entire team and I moved to Boston to create PRL with Will, Mitch, and Karl.

Olin Shivers

Professor Shivers' 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, he was a research scientist at the Massachusetts Institute of Technology Artificial Intelligence Laboratory, a founder and CTO of the Smartleaf Corporation, and a faculty member at the Georgia Institute of Technology.

Mitch Wand

Professor Wand focuses on programming-language semantics and their application to compiler correctness.

Throughout the 1990s, Professor Wand examined the verification of optimizing compilers, building an understanding of how a program analysis justifies the program transformation based upon it.

Professor Wand has also explored the related area of type theory, particularly as applied to object-oriented programming. He has been a leader in the study of continuations, a technique for understanding the control structure of programs. With Daniel P. Friedman and Christopher T. Haynes, he wrote Essentials of Programming Languages, a widely used textbook. He is a Fellow of the Association for Computing Machinery.

Research Scientists

Eli Barzilay

He is Israeli by nature, a member of PLT by association. Eli maintains a major part of PLT's infrastructure, conducts research on language prototyping, and occasionally teaches a course for the College.


Tony Garnock-Jones

Phillip Mates

Originally hailing from Utah, I joined the PRL in 2012. I'm currently thinking about analyses on and proofs regarding incomplete programs.

James T. Perconti

Jonathan Schuster

I joined the PRL in 2011 after working for four years at a software consulting company in Chicago. My research interests lie in making software development easier by improving programming languages and the ecosystems surrounding them. In my spare time, I enjoy cooking, reading, and exploring Boston (often on my bike).

Erik Silkensen

I joined the PRL in 2012 after completing a BS/MS degree at the University of Colorado in Boulder.

Justin Slepak

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

Vincent St-Amour

I joined the PRL in 2009 after getting my undergraduate degree in Montreal. I am currently working with Matthias Felleisen and Sam Tobin-Hochstadt on performance tools for Racket and Typed Racket. I'm interested in compilers, functional programming and parentheses.

Paul Stansifer

I am working with Mitch on macros that can extend the underlying syntax of their language. I like cookies. And burritos.

Asumu Takikawa

An Oregonian by nature, Japanese by nationality, Canadian by education, and a PhD student by trade. My BSc was in CS and Math from UBC. My interests are type systems and functional programming. In my spare time I read novels and build transit-oriented cities in SimCity.


Bryan D. Chadwick

I received my Masters from Northeastern in 2005 and joined PRL later that year under Karl Lieberherr. I'm interested in most things PL, but am currently looking at merging ideas from generic functional programming with those of Object-Oriented data structure traversals.

John Brinckerhoff Clements

I have a family and a house and an hourglass on my desk. I will gladly tackle questions on functional programming, debugging, annotation, and macros. The rest of the questions you should ask someone else.

Richard Cobbe

I received my PhD in January, 2009. My thesis research proposed two changes to Java that remove the need for its "null" value by providing safer alternatives. Specifically, Java programs use null in two primary ways: to indicate that a field is uninitialized, and as a rough encoding of the ML OPTION type. My changes include a new object initialization mechanism that guarantees that all fields are initialized before their use and a safer two-way disjoint union to represent OPTION.

Ryan Culpepper

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.

Peter Dillinger

B.S., M.S., and doctoral work in Computer Science at Georgia Tech from 1999 through 2007. I came to Northeastern in 2007 with advisor Pete Manolios. My broad interests include tools and techniques for development of correct systems. Specifically, I have made contributions to explicit-state model checkers including Spin, Murphi, and Java Pathfinder. I have also written a development environment for the ACL2 theorem prover called ACL2s (for "ACL2 Sedan").

Christos Dimoulas

'Would you tell me, please, which way I ought to go from here?'
'That depends a good deal on where you want to get to.'
'I don't know where. . .'
'Then it doesn't matter which way you go.' said the Cat.
-- Alice in Wonderland, Lewis Carroll

Carl Eastlund

A third-year student in the languages group, I graduated with a CS degree from CMU in '01 and worked a couple years in industry before coming here. My interests lie mostly in static analysis and functional software design. Outside school, I enjoy kung fu, card games and board games, and geeky fiction genres.

Dave Herman

My dissertation was an exploration of the theoretical foundations of hygienic macro expansion. During grad school, I also started working on the Ecma TC39 committee designing and specifying the JavaScript programming language. I now work full-time at Mozilla as a programming language designer and implementor, and continue my work with TC39 on JavaScript.

J. Ian Johnson

I work on developing methods for (developing methods for) proving and discovering properties about programs. This includes term rewriting, type systems and program analyses (and linguistic abstractions for implementing these methods).

Felix Klock

I am a fifth-year Ph.D. student. My background is mostly in compiler technology, e.g. dataflow analysis and register allocation.

I currently work with Will Clinger on garbage collection of large heaps with hard asymptotic bounds on space and soft bounds on pause times.

I am also a Larceny developer; I have contributed to the development of Common Larceny, the Larceny x86 code generator, and the Larceny runtime.

Vassilis Koutavas

I have spent five of my favorite years in PRL, where I studied the theory of programming languages. My advisor was Mitch Wand with whom I worked on reasoning about higher-order and imperative programs.

Theo Skotiniotis

I joined Northeastern in 2001, and I worked with Prof. Lieberherr. Interests ... I used to have a list of them written on a piece of paper on my desk, but I cannot find it right now!

Stevie Strickland

I came to Northeastern in 2004, and after my first year here, I took leave for industrial work in the area of network security. I then returned to the PRL in 2007. My research is focused on extending contract systems like the one in Racket to cover features like first-class modules, first-class classes, and values like vectors and objects that contain mutable state. I've also done work on appropriate type systems for language features like Scheme's variable-arity map and apply.

Sam Tobin-Hochstadt

Jesse A. Tov

I joined the PRL in 2005 and worked with Riccardo Pucella. I graduated in 2012 and currently work as a postdoctoral fellow at Harvard.

Aaron J. Turon

At the moment my interests mostly revolve around parallelism: how to enable it, and how to make sure you're doing so safely. Happily, tackling those issues involves systems, language design, semantics, logic, and verification. I joined the lab in 2007 and work with Mitch.

Dimitris Vardoulakis

I completed my dissertation in 2012 and I'm now working at Google. At Northeastern, I worked with Olin Shivers on various static analyses and compiler optimizations for functional languages.

Pengcheng Wu

PhD student in computer science, worked on programming languages and software engineering, especially on Object/Aspect-oriented Software Development technologies.

Former Members

Kenichi Asai

I was visiting Mitch's group for a year until the end of February 2005. I am interested in partial evaluation, reflection, continuations, etc.

David Van Horn

I am a native Texan and CRA Computing Innovation Fellow, working with Matthias, Mitch, Olin, and the rest of the PRL. I am interested in the design, implementation, and use of programming languages. In particular, my research has focused on the analysis of higher-order programs and its complexity. I have proved novel upper and lower bounds for a number of important program analyses and used these insights to design better program analyzers.

Joe Marshall

I was born the son of a poor black sharecropper. My fathers family name being Marshall, and my christian name Joseph, my infant tongue could make of both names nothing longer or more explicit than Joseph Marshall. So, I called myself Joseph Marshall, and came to be called Joseph Marshall.

Some years ago --- never mind how long precisely --- having little or no money in my purse and nothing particular to interest me on shore, I thought I would sail about a little and see the watery part of the world.

Riccardo Pucella

I hail from Rimouski (Quebec, Canada), which is as unlike Texas as you can imagine, and yet very much like Texas at the same time. After studying at McGill University and Cornell University, and putting in some time at Bell Labs and Microsoft Research, I joined the PRL group in 2005. I tend to research topics in logic, type systems, and semantics.