Gradual Typing Across the Spectrum

Principal Investigators

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.

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.

Jeff Foster

I am a Professor in the Computer Science Department and UMIACS at the University of Maryland, College Park. I am a member of the programming languages group at Maryland. The goal of my research is to develop practical tools and techniques to improve software quality. I am interested in programming languages, software engineering, advanced static type systems, scalable constraint-based analysis, and building tools that implement my ideas.

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.

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.

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.

Team Members

Brown University

Jack Wrenn
Ph.D Student
https://github.com/jswrenn
Justin Pombrio
Ph.D Student
http://justinpombrio.net/
Matthew Kolosick
REU
https://github.com/mkolosick

Indiana University

David Christiansen
Post-doc
http://davidchristiansen.dk/
Matteo Cimini
Post-doc
http://cimini.info
Deyaaeldeen Almahallawi
Ph.D Student
http://deyaaeldeen.github.io/
Spenser Bauman
Ph.D Student
http://www.crest.iu.edu/node/194
Ambrose Bonnaire-Sergeant
Ph.D Student
http://ambrosebs.com
Caner Derici
Ph.D Student
http://caner.derici.me/
Andre Kuhlenschmidt
Ph.D Student
http://www.crest.iu.edu/node/164
Andrew Kent
Ph.D Student
http://andmkent.com
Michael Vitousek
Ph.D Student
http://homes.soic.indiana.edu/mvitouse/

Northeastern University

Stephen Chang
Lecturer, Researcher
http://www.ccs.neu.edu/home/stchang/
Benjamin Chung
Ph.D Student
http://benchung.github.io/
Ben Greenman
Ph.D Student
http://ccs.neu.edu/home/types

University of Maryland, College Park

Brianna Ren
Ph.D Student
https://www.cs.umd.edu/~bren