Programming Languages

Programming languages are our means of expressing computations. Thus, programming languages are a powerful locus of research toward building high-quality software, i.e., software that is flexible, secure, reliable, available, efficient, reusable, and more. We can design new languages, or we can build tools that analyze programs in existing languages, toward maximizing quality.

The Lab for Programming Languages and the University of Maryland (PLUM) is engaged in exciting research that aims to improve software quality through new languages and software tools. Our work involves formalism and proof (e.g., to show that a particular analysis establishes a certain property of the programs it considers) as well as implementation and evaluation (e.g., to show that our ideas work on real software at reasonable cost). Current interests focus on cloud computing, mobile computing, high-availability systems, static analysis, functional programming, debugging, and privacy-preseving computation.

Associated Faculty

Professor Emeritus
Adjunct Associate Professor
Assistant Professor