For the project this semester, you will be explaining portions of a research paper that rely on theoretical concepts we learn in this course such as operational semantics, proofs about program behavior, type checking, and/or lambda calculus. You can and are encouraged to do this project with a partner.
For the project proposal, you will be identifying two papers that you will potentially present to the class at the end of the semester. You will only present one of these papers, but you will be proposing two so you have some flexibility in which one you end up presenting.
The proposal will be submitted as a pdf on Gradescope. It needs to include a full citation for each paper you (and your partner) may present, your partner's name if relevant, and a paragraph describing the aspects of the paper you plan to present to the class (e.g. a figure, a table, a proof, an example, ...).
When looking for papers, PLDI (https://dl.acm.org/conference/pldi), POPL (https://dl.acm.org/conference/popl), and ICFP (https://www.icfpconference.org/) papers often use the concepts we will be covering in this course.
Here are some other resources that might point you to some interesting papers:
-
Linking Types for Multi-Language Software: Have Your Cake and Eat It Too
-
First International SAT/SMT Solver Summer School 2011, has a whole list of how SMT solvers are being used for all kinds of things including type analysis and program synthesis.
-
Models of Generics and Metaprogramming: Go, Rust, Swift, D and More, talks about how generics is implemented in many different languages. Also touches on macros.
Interesting and not too long.
NOTE: You need to propose and present a peer-reviewed paper in the area of programming languages. You cannot present a blog post or any other non-peer-reviewed article. ArXiv papers have NOT been peer reviewed. Usually you can find a published version of an ArXiv paper.
Here are some other possibilities to consider:
-
Outline of a Mathematical Theory of Computation by Dana Scott.
-
Polymorphic embedding of dsls by Hofer et al., 2008.
-
Python: The Full Monty―A Tested Semantics for the Python Programming Language by Joe Gibbs Politz, Alejandro Martinez, Matthew Milano, Sumner Warren, Daniel Patterson, Junsong Li, Anand Chitipothu, and Shriram Krishnamurthi. OOPSLA 2013.
The talk slides will be submitted on gradescope on Wednesday April 28th by 11:59pm.
Each talk will be 10 minutes. When partners are giving a talk, each person will be talking for 5 minutes. The time limit on the talks will be strictly observed just as they are at top conferences in consideration of others giving talks.
It is much more difficult to talk for only 5 or 10 minutes than to talk for 50 minutes. It requires deep thought, preparation, and practice. I usually advice and require a small number of slides to help people meet their goal. However, The Talk Talk is fantastic and recommends using a lot of slides to make the presentation easier. Thus there will be no limit on slides, but I will be cutting off each person at 5 minutes. If you are not done at the 5 minute point, points will be taken off your presentation.
The talk should include:
- the research problem the presented paper is attempting to solve, (30 sec)
- why people care about that research problem, (30 sec)
- a succinct summary of the approach, (1 minute)
- and how concepts in this course are used. (8 minutes)
The talk will be graded on whether it covers the research problem, why paper care, a summary of the approach, and concepts used in this course and the timing expectations as well as the following:
- preparedness of the speakers (practice ahead of time),
- showing a clear understanding of the concepts, and
- presentation of the concepts so others can understand.