Our group is interested in all aspects of programming language design and implementation, ranging from theoretical foundations to practical applications. Take a look at our projects and publications below to find out what we're currently up to.

We are actively recruiting highly motivated graduate students, as well as UChicago undergrads, who share and complement our research interests. If you are interested in our work and would like to talk about opportunities to join our group, please get in touch!


>>> Old News

Recent Talks

>>> More Talks

Core Faculty

Ravi Chugh
Assistant Professor
John Reppy

Affiliated Faculty

Stuart Kurtz
Shan Lu
Associate Professor
Dave MacQueen
Professor Emeritus
Adam Shaw
Senior Lecturer

Students and Postdocs

Charisee Chiw
Mikaël Mayer
Cyrus Omar
Kavon Farvardin
(Ph.D. Student)
Brian Hempel
(Ph.D. Student)
Kartik Singhal
(Ph.D. Student)
Joe Wingerter
(Ph.D. Student)



Charisee Chiw (PhD 2017) Implementing Mathematical Expressiveness in Diderot
Lamont Samuels (PhD 2016) Declarative Computer Graphics using FRP
Sneha Popley (MS 2014) Modules and the Global Environment in Type Classes
Lars Bergstrom (PhD 2013) Parallel Functional Programming with Mutable State
Sven Auhagen (MS 2012) Chunking of Work for Dynamic Scheduling Decisions
Adam Shaw (PhD 2011) Implementation Techniques for Nested-Data-Parallel Languages
Mike Rainey (PhD 2010) Effective Scheduling Techniques for High-Level Parallel PLs
George Kuan (PhD 2010) A True Higher-Order Module System
Jon Riehl (PhD 2008) Relative Techniques in Extensible Languages
Yingqi Xiao (PhD)
Chunyan Song (PhD)


Grace Lu (BS 2017) Deuce: Direct Manipulation Source Program Editor
Izaak Meckler (BS 2015) Mote: Goal-Driven Development and Synthesis for Haskell
Aaron Turon (BS 2007) Metaprogramming with Traits
Aquinas Hobor (BS 2003)
Sam Tobin-Hochstadt (BS 2003)
Lukasz Ziarek (BS 2003) Adding Existential Types to SML/NJ


Active Projects

Deuce Lightweight Structured Editing
Diderot A Parallel DSL for Image Analysis and Visualization
Manticore A High-Level Parallel Programming Language
Sketch-n-Sketch Direct Manipulation Programming for SVG

Older Projects

Concurrent ML First-Class Synchronous Operations in SML
Dependent JavaScript Static Types for Dynamic Languages
Moby Higher-Order Concurrency and Classes
Standard ML and SML/NJ Higher-Order, Typed, Functional Programming


Please see Reppy's and Chugh's publication pages.


Current Quarter (Autumn 2018)


Upcoming Quarters

The following schedule is subject to change.

[sp18] CMSC 22100: Programming Languages (Shaw)

[sp18] CMSC 32001: Topics in PL (Chugh)

Previous Quarters