Gradual Typing Across the Spectrum

Principal Investigators

Matthias Felleisen

Joined Northeastern University, 2001
Joined Rice University, 1987
Ph.D, Indiana University, 1987

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.

Jan Vitek

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.

Jeff Foster

I am a Professor in the Department of Computer Science at Tufts University. The goal of my research is to develop fundamental new ways to make it easier to build more reliable, secure software. I am interested in programming languages, software engineering, and security. I am a member of TuPL. Previously, I was a Professor in the Department of Computer Science and UMIACS at the University of Maryland, College Park, as well as a member of PLUM.

Shriram Krishnamurthi

Joined Brown University, 2000
Ph.D, Rice University, 2001

Though my head is often in security, networking, verification, and HCI, my heart is in programming languages. Over the years I have contributed to several innovative and useful software systems: JavaScript and Web tools, Racket (formerly DrScheme), WeScheme, Margrave, Flapjax, FrTime, Continue, FASTLINK, and more.

Jeremy Siek

Associate Professor of Computer Science in the School of Informatics and Computing at Indiana University. Jeremy teaches courses in programming, programming languages, compilers, logic, and other areas of computer science. Jeremy designs new language features to help programmers create and use software libraries and domain-specific languages, especially generic and high-performance ones. In particular, Jeremy invented the gradual typing approach to mixing static and dynamic type checking within the same language. Prior to that, Jeremy authored the Boost Graph Library and attempted to add concepts to C++. Jeremy is a member of the Programming Languages Group at IU and the Center for Research in Extreme Scale Technologies.

Sam Tobin-Hochstadt

My research focuses on the design and implementation of programming systems. I'm particularly interested in programming languages that support the evolution of software. I primarily work on Racket and Typed Racket as well as with Mozilla Research on JavaScript.

Team Members

Brown University

Jack Wrenn
Ph.D Student
Preston Tunnell Wilson
Ph.D Student
Sorawee Porncharoenwase

Indiana University

Deyaaeldeen Almahallawi
Ph.D Student
Ambrose Bonnaire-Sergeant
Ph.D Student
Caner Derici
Ph.D Student
Andre Kuhlenschmidt
Ph.D Student
Michael Vitousek
Ph.D Student
Sarah Spall
Ph.D Student
Andrew Kent
Ph.D Student

Northeastern University

Stephen Chang
Lecturer, Researcher
Benjamin Chung
Ph.D Student
Ben Greenman
Ph.D Student

University of Maryland, College Park

Brianna Ren
Ph.D Student
Milod Kazerounian
Ph.D Student