University of Chicago Programming Languages Reading Group

The Programming Languages Reading Group, part of PL research at UChicago, is an occasional, informal meeting to discuss interesting PL papers. Food is provided. Visitors welcome!

To receive announcements, sign up for the pl-readinggroup mailing list.

To suggest a paper, open an issue on the Github page. We’ll close the issue when we schedule the paper.


For the Spring 2020 term, PLRG meets on Wednesdays, 3:00pm at

Date Paper Leader
April 1 GEC: A Toolkit for Generic Rapid Prototyping of Type Safe Interactive Applications (LNCS '04) & EditorArrow: An Arrow-Based Model for Editor-Based Programming (JFP '12) Brian
April 8 Extensible Datasort Refinements (ESOP '17) (See also blog post on terminology) Brian
April 15 Can functional programming be liberated from the von Neumann paradigm? (2010 Blog Post) Nick
April 29 Symbolic Execution for Software Testing: Three Decades Later (CACM '13) (alt version w/printable formatting) & KLEE: Unassisted and Automatic Generation of High-Coverage Tests for Complex Systems Programs (OSDI '08) Brian
May 6 A Verified LL(1) Parser Generator (ITP '19) Kartik
May 13 Retrofitting Parallelism onto OCaml (In submission for ICFP’20) Kavon
May 20 The Art of the Obvious (CHI '92) & Self-Disclosing Design Tools: A Gentle Introduction to End-User Programming (DIS '95) & A Principled Evaluation for a Principled Idea Garden (VL/HCC '15) Brian
May 27 egg: Easy, Efficient, and Extensible E-graphs (2020 Preprint) Teo

Past Terms

Fall 2019/Winter 2020

Reading group did not meet for the Fall 2019 term and Winter 2020 terms because everybody was distracted.

Spring 2019

For the Spring 2019 term, PLRG met on Tuesdays, 3:00pm in Crerar 236.

Date Paper Leader
2019–4–16 A Survey of Adaptive Optimization in Virtual Machines (IEEE '05) & Overcoming the Challenges to Feedback-Directed Optimization (Keynote DYNAMO '00) Kavon
2019–4–23 Rating Compiler Optimizations for Automatic Performance Tuning (SC’04) & Online performance auditing: using hot optimizations without getting burned (PLDI’06) Kavon
2019–4–30 The Operating System: Should There Be One? (PLOS '13) Brian
2019–5–7 Phase Shift Detection: A Problem Classification (Tech Report) & Automatically characterizing large scale program behavior (ASPLOS’02) Kavon

Fall 2018/Winter 2019

Reading group did not meet for the Fall 2018 term, because of Stu’s “The Little Typer” Seminar, John’s Coq Seminar, and paper deadlines. Winter 2018 was also skipped because nobody was thinking about PLRG.

Summer 2018

For the Summer 2018 term, we met on Fridays at various times and places.

Date Paper Leader
2018–6–29 Towards a Strongly Typed Functional Operating System (IFP '02) Brian
2018–7–6 Lunch to welcome Nick Ravi
2018–7–13 A discussion of atJIT (Related Paper #1, Paper #2) Kavon
2018–7–27 NLP/ML + PL Brian
2018–8–3 Fungi: Typed Incremental Computation With Names (Preprint) Nick
2018–8–10 Bidirectional Evaluation with Direct Manipulation (OOPSLA '18) Mikaël
2018–9–14 Output-Directed SVG Programming (draft) Brian
2018–9–21 Practice Talk Party (ICFP, Elm Conf, Strange Loop, FHPC) Cyrus, Ravi, Kavon

Spring 2018

For the Spring 2018 term, we met on Tuesdays, 12:30pm-1:30pm in Eckhart 129.

Date Paper Leader
2018–4–10 OOPSLA Draft Cyrus
2018–4–17 Contification using Dominators (ICFP '01) Kavon
2018–4–24 Challenges in Higher-Order Superoptimization (presentation on possible thesis topic) Kavon
2018–5–1 Weird Machines, Exploitability, and Provable Unexploitability (IEEE TETC '17) Joe
2018–5–8 Tangible Functional Programming (IFCP '07) (Google TechTalk Video) Brian
2018–5–15 Molecular Programming Overview; 1. JoCaml Tutorial 2. The Reflexive CHAM and the Join Calculus (POPL '96) Joe
2018–5–22 Deuce: A Lightweight User Interface for Structured Editing (ICSE '18 Practice Talk) (Demo Video) (Silent Demo of User Study Tasks) Brian

Winter 2018

For the Winter 2018 term, we met on Tuesdays, 2pm-3pm in Eckhart 129.

Date Paper Leader
2018–1–9 A Principled Approach to Ornamentation in ML (POPL '18) Joe
2018–1–16 Hazelnut: A Bidirectionally Typed Structure Editor Calculus (POPL '17) (Demo) Cyrus
2018–1–23 Postponed by Illness
2018–1–30 1ML – Core and Modules United (JFP '16) Brian
2018–2–6 Every Bit Counts: The Binary Representation of Typed Data and Programs (JFP '12) Joe
2018–2–13 The Next 700 Programming Languages (CACM '66) & Why Concatenative Programming Matters (Blog post '12) Kartik & Joe
2018–2–20 Sketch-n-Sketch WIP Demo Brian
2018–2–27 ICFP Drafts Joe & Kavon
2018–3–6 ICFP Draft Cyrus

Fall 2017

For the Fall 2017 term, we met on Thursdays, 3pm-4pm in Ryerson 276.

Date Paper Leader
2017–11–09 Structured Asynchrony with Algebraic Effects (TyDe '17) (Video) Brian
2017–11–16 Tracing Lazy Functional Computations Using Redex Trails (PLILP '97) Brian
2017–11–23 Thanksgiving
2017–11–30 Type Directed Compilation of Row-Typed Algebraic Effects (POPL '17) Kavon
2017–12–14 Functional Programs That Explain Their Work (ICFP '12) (Video) Brian

Spring 2017

Reading Group did not meet during the Spring 2017 term. The Program Synthesis Seminar crowded it out.

Winter 2017

For the Winter 2017 term, we met on Fridays, 11:30–12:30pm in Ryerson 277.

Date Paper Leader
2017–1–13 Polymorphism, Subtyping, and Type Inference in MLsub (POPL '17) (ICFP '15 Video) Brian
2017–1–20 Compiling Without Continuations (In submission) Kavon
2017–1–27 Learning Refinement Types (ICFP '15) (Video) Brian
2017–2–03 Refinement Reflection (or, how to turn your favorite language into a proof assistant using SMT) (draft) Brian
2017–2–17 Language primitives and type discipline for structured communication-based programming (ESOP '98) Brian
2017–2–24 Programming with Algebraic Effects and Handlers Joe
2017–3–17 Retrofitting Linear Types (In submission) Joe

Fall 2016

For the Fall 2016 term, we met on Fridays, 12:30pm-1:30pm in Ryerson 276.

Date Paper Leader
2016–10–14 Semi-Automated SVG Programming via Direct Manipulation Brian
2016–10–21 Automatic Generation of Peephole Superoptimizers Kavon
2016–10–28 Dag-Calculus: A Calculus for Parallel Computation Kavon
2016–11–04 A correspondence between rooted planar maps and normal planar lambda terms Joe