2022 CS 4121/5121 Compiler Bakeoff
The “Best Compiler” title gives each member of the winning team both
bragging rights and an attractive plaque announcing their excellence in the
compiler-writing domain. PA6 submissions will be treated as submissions to
the contest; however, performance in the bakeoff does not affect course
grades.
Criteria
Compilers are compared using the following criteria, listed roughly in order
of importance:
- Correctness of generated code and of compile-time error checking.
- Speed of the generated code across a wide selection of benchmarks,
including object-oriented benchmarks.
- Length and clarity of the compiler implementation, and time required
to compile the benchmark programs.
Benchmarks
Compilers are evaluated using several Xi and Rho programs, testing both
language features and performance. These benchmarks test the performance of
arrays, loops, recursion, redundant computations, and more.
More detailed statistics are available.
Result
There were many excellent project submissions.
The winning compiler for Spring 2022 is the one developed by the group of
Omkar Bhalerao, Vivian Ding, Felix Roz, and William Wang. Their compiler,
implemented in Kotlin, was one of the most correct, while also generating
easily the fastest code. Their optimizations included copy and constant
propagation, dead code removal, and function inlining.
Honorable mentions go to two other groups:
- Henry Chen, Samantha Cobado, Jackson Subcleff, and Ralph Wang. Their compiler,
implemented in Java, was highly correct and generated the second-fastest code.
- Andrei Shpilenok. This compiler, implemented in Rust, was highly
correct, especially for Xi features. The compiler itself was also extremely fast.
Past Bakeoff Results and Winners
- 2021: Vaishnavi Gupta, Felix Hohne, and Shiyuan Huang
- 2020: Aahil Awatramani, Jamal Hashim, Xiuyu Li, and Zheng Wang
- 2019: Aaron Lou, Zicen Pan, Iris Zheng, and Sam Zhou
- 2018: Drew Dunne, Jacob Glueck, Alex Libman, and Daniel Wisner
- 2016: Gary Zibrat, Anu Reddy, and Kavan Bhavin
- 2011: Stephen Gutz, Gautam Kamath, and Gregory Zecchini
- 2009: Owen Arden, Catalin Dumitriu, Wenzel Jakob, and Danfeng Zhang
- 2001:
Ben Hertzberg, Paul Jensen, Kay Tiong Khoo, and Chad Potocky
- 2000:
Hao Kung, Matt Harren, Jared Tolman, and King Lun Choi