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. Final project submissions are treated as submissions to the contest; however, performance in the bakeoff does not affect course grades.
Compilers are compared using the following criteria, listed in order of importance:
Compilers were evaluated using several Xi programs, testing both language features and performance. These benchmarks test the performance of arrays, loops, recursion, redundant computations, and more.
Several groups did an outstanding job, and it was challenging to choose among them.
The winning project team was Aahil Awatramani, Jamal Hashim, Xiuyu Li, and Zheng Wang. This was a tough call since although we considered correctness to be the most important attribute, several groups produced compilers that were highly compliant with the language specification. Among these, the winning group's compiler generated code ran faster on average.
Overall, the project implementations were excellent, and students should be proud of what they accomplished. As has usually been the case in past semesters, the groups that were the most successful overall used Java as their programming language. However, OCaml, Kotlin, and Rust appeared to work well for at least some groups using those languages. The shortest and fastest compiler was written in OCaml. The compiler that generated the fastest code was written in Rust (but it had minor correctness issues).