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 Fall 2018 term, we are not meeting regularly because of Stu’s “The Little Typer” Seminar, John’s Coq Seminar, and paper deadlines. Join the mailing list to hear of any impromptu meetings. Reading group will resume a more regular schedule in Winter 2018.

Past Terms

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