Advanced topics in programming languages
Tentative seminar schedule
- Mon 9 October 2023 (3pm, FW26)
- Introduction
Introduction slides
Garbage collection slides
Garbage collection handout
Assigned papers:-
A real-time garbage collector with low overhead and consistent utilization
(POPL 2003)
David F. Bacon, Perry Cheng and V. T. Rajan -
Concurrent GCs and modern Java workloads: A cache perspective
(ISMM 2023)
Maria Carpen-Amarie, Georgios Vavouliotis, Konstantinos Tovletoglou, Boris Grot and René Müller -
Low-latency, high-throughput garbage collection
(PLDI 2022)
Wenyu Zhao, Stephen M. Blackburn and Kathryn S. McKinley
-
A real-time garbage collector with low overhead and consistent utilization
- Mon 16 October 2023 (3pm, FW26)
- Garbage collection
Delimited continuations slides
Delimited continuations handout
Assigned papers:-
Delimited control in OCaml, abstractly and concretely
(Theor. Comput. Sci. 2012)
Oleg Kiselyov -
Implementing first-class polymorphic delimited continuations by a type-directed selective CPS-transform
(ICFP 2009)
Tiark Rompf, Ingo Maier and Martin Odersky -
Continuing WebAssembly with Effect Handlers
(OOPLSA 2023)
Luna Phipps-Costin, Andreas Rossberg, Arjun Guha, Daan Leijen, Daniel Hillerström, KC Sivaramakrishnan, Matija Pretnar and Sam Lindley
-
Delimited control in OCaml, abstractly and concretely
- Tue 24 October 2023 (3pm, FW26)
- Delimited continuations
Dependent types slides
Assigned papers:-
Chapter 2 (Pattern Matching) of Towards a practical programming language based on dependent type theory
(PhD dissertation, 2007)
Ulf Norell -
foetus - Termination Checker for Simple Functional Programs
(Programming Lab Report, 1998)
Andreas Abel -
A dependently typed calculus with pattern matching and erasure inference
(ICFP 2020)
Matúš Tejiščák
-
Chapter 2 (Pattern Matching) of Towards a practical programming language based on dependent type theory
- Mon 30 October 2023 (3pm, FW26)
- Dependent types
Module systems slides
Background reading (optional):- Section 11 (Related work and discussion) of F-ing modules, extended version (Andreas Rossberg, Claudio Russo and Derek Dreyer, JFP 2014)
- Chapter 1 (The Design Space of ML Modules) of Understanding and Evolving the ML Module System (Derek Dreyer, 2005)
-
A Type-Theoretic Approach to Higher-Order Modules with Sharing
(POPL 1994)
Robert Harper and Mark Lillibridge -
Applicative Functors and Fully Transparent Higher-Order Modules
(POPL 1995)
Xavier Leroy -
F-ing Modules
(TLDI 2010)
Andreas Rossberg, Claudio Russo, and Derek Dreyer
- Mon 6 November 2023 (3pm, FW26)
- Module systems
Abstract interpretation slides
Assigned papers:-
The Octagon Abstract Domain
(Eighth Working Conference on Reverse Engineering, 2001)
Antoine Miné -
AI2: Safety and Robustness Certification of Neural Networks with Abstract Interpretation
(IEEE Symposium on Security and Privacy 2018)
Timon Gehr, Matthew Mirman, Dana Drachsler-Cohen, Petar Tsankov, Swarat Chaudhuri, and Martin Vechev -
A Formally-Verified C Static Analyzer
(POPL 2015)
Jacques-Henri Jourdan, Vincent Laporte, Sandrine Blazy, Xavier Leroy, and David Pichardie
-
The Octagon Abstract Domain
- Mon 13 November 2023 (3pm, FW26)
- Abstract interpretation
Partial evaluation slides
Background reading (optional):- Partial Evaluation and Automatic Program Generation (N.D. Jones, C.K. Gomard, and P. Sestoft, 1993)
-
Continuation-based partial evaluation
( LISP and Functional Programming, 1994)
Julia L. Lawall and Olivier Danvy -
Eta-Expansion Does The Trick
(TOPLAS, 1996)
Olivier Danvy, Karoline Malmkjær, and Jens Palsberg -
The essence of LR parsing
(PEPM, 1995)
Michael Sperber and Peter Thiemann
- Mon 20 November 2023 (3pm, FW26)
- Partial evaluation
Program synthesis slides
Background reading (optional):- Program Synthesis (S. Gulwani, O. Polozov and R. Singh, 2017.)
-
Oracle-Guided Component-Based Program Synthesis
(ICSE 2010)
Susmit Jha, Sumit Gulwani, Sanjit A. Seshia, and Ashish Tiwari -
Program Synthesis from Polymorphic Refinement Types
(PLDI 2016)
Nadia Polikarpova, Ivan Kuraj, and Armando Solar-Lezama -
Inductive Program Synthesis via Iterative Forward-Backward Abstract Interpretation
(PLDI 2023)
Yongho Yoon, Woosuk Lee, and Kwangkeun Yi -
Implementation and Synthesis of Math Library Functions
(POPL 2024)
Ian Briggs, Yash Lad, and Pavel Panchekha
- Mon 27 November 2023 (3pm, FW26)
- Program synthesis