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!
- [Mar 2017] Ravi receives NSF CAREER Award to pursue ideas that build on the Sketch-n-Sketch project.
- [Sep 2016] Second edition of the Midwest PL Summit will take place at U of C on Friday, December 2.
- [Aug 2016] Harry Xu visits and presents Marrying Generational GC and Region Techniques.
- [Jun 2016] Peter-Michael Osera visits and presents Program Synthesis with Types.
- [May 2016] John and Gordon Kindlmann receive an NSF Medium Award to support the Diderot project.
- [Charisee @ MWPLS 2016] Compiling and Testing a DSL for Tensor Calculus
- [Kavon @ MWPLS 2016] Practical Conversion from CPS to Direct Style
- [Brian @ MWPLS 2016] Semi-Automated SVG Programming via Direct Manipulation
- [Brian @ UIST 2016] Semi-Automated SVG Programming via Direct Manipulation (video)
- [Kavon @ ML 2016] Compiling with Continuations and LLVM
- [Ravi @ Strange Loop 2016] Sketch-n-Sketch: Interactive SVG Programming with Direct Manipulation
- [Brian @ PLDI 2016] Programmatic and Direct Manipulation, Together at Last (video)
|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)|
|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|
|Diderot||A Parallel DSL for Image Analysis and Visualization|
|Manticore||A High-Level Parallel Programming Language|
|Sketch-n-Sketch||Semi-Automated SVG Programming with Direct Manipulation|
|Concurrent ML||First-Class Synchronous Operations in SML|
|Moby||Higher-Order Concurrency and Classes|
|Standard ML and SML/NJ||Higher-Order, Typed, Functional Programming|
Current Quarter (Winter 2017)
The following schedule is subject to change.
[sp17] CMSC 22100: Programming Languages (Shaw)
[sp17] CMSC 22300: Functional Programming (Chugh)
[sp17] CMSC 32001: Topics in PL (Chugh)
A Note About CMSC 16100
Our Honors Intro Programming I course (CMSC 16100) is taught using Haskell and, not surprisingly, often feels like a course about functional programming concepts.