Grading Policy
This course has assignments and exams according to the list below.
The student must achieve 60 points, out of 100, to be approved in this class.
There are five extra points for students who answer questions in compiler-related forums.
-
Two exams worth 20 points each. Total = 40 points.
-
Ten project assignments worth 5 points each. Total = 50 points (Plus one extra point for the last assignment).
-
Two discussion sections, worth 5 points each. Total = 10 points.
On the Exams
As mentioned before, the course has two exams, each worth 20 points.
The first test covers all the material from the first class until the class on "Tainted Flow Analysis". Example of midterm tests are available below:
-
Mid exam 1
-
Mid exam 2 (Just first question)
-
Mid exam 3
-
Mid exam 4
-
Mid exam 5.
Take-home exam.
-
Mid exam 6.
Take-home exam.
-
Mid exam 7.
Take-home exam.
-
Mid exam 8.
Take-home exam.
-
Mid exam 9.
Take-home exam.
-
A similar exam used at ENS Lyon (merci Laure Gonnord and Gabriel Radanne for sharing
this material!).
The second exam covers the rest of the material, i.e., it starts at Range Analysis and goes until "Just in Time Compilers". Of course, given that some subjects use concepts and notions defined in previous material, the student is expected to know the topics that have been covered before. Examples of final tests are
available below:
-
Final exam 1
-
Final exam 2
-
Final exam 3
-
Final exam 4 (Take
home).
-
Final exam 5 (Take
home).
-
Final exam 6 (Take
home).
-
Final exam 7 (Take
home).
The Extra Participation Points - Forums
Students might get up to 5.0 extra points by answering questions in Reddit Compilers.
Each reasonable answer is worth 0.5 points.
However, there is one rule: students can get at most 1.0 points per week!
Thus, don't try to answer multiple questions in the last week of class.
The Extra Project Assignment - Reproducibility of Published Results
The extra project consists in trying to reproduce some result published in the compiler literature.
This project must be turned in no later than June 26th, 11:59pm, 2024.
Many papers leave a note pointing to a website where further material can be obtained.
Often, this material allows the interested researcher to reproduce the experiments that are discussed in the paper.
Sigplan conferences even have a protocol for Artifact Evaluation.
The goal of this project is to play with this material, given a paper that the student must choose.
To get the five extra points, the student must:
-
choose a paper presented in a recent compiler related conference, such as CGO,
PLDI or CC.
-
download the material that the authors have made publicly available for the paper. If there is no such material, but the student still wants to reproduce the paper's results, he/she can write to the authors of the paper, asking for their implementation.
-
run the implementation, trying to reproduce at least one of the experiments in the paper. Even if it is not possible to reproduce the experiments, the student can still write a report about his/her tries, to claim the extra points.
-
write a short report about the entire procedure. This report must contain the URL of the material that has been downloaded, plus a brief description of the student's experience with it. If the student has not been able to reproduce those experiments, than the report must explain the reasons for this failure.
Two examples can be found below:
-
João Frolich's report
on the paper "Stale Profile Matching".
-
Kaio Henrique's report
on the paper "Compile-Time Analysis of Compiler Frameworks for Query Compilation".
-
Luiza Melo's report
on the paper "Flap: a Deterministic Parser with Fused Lexing".
-
Thaís Damásio's report
on the paper "Testing static analyses for precision and soundness".
-
Vinicius Pacheco's report
on the paper "Type freezing: exploiting attribute type monomorphism in tracing JIT compilers".