These two PhD scholarships are part of a new project funded by Oracle Labs Australia to model and verify sophisticated compiler optimisations in the Graal Java compiler. Graal is a high-performance polyglot virtual machine (VM) that not only supports JVM-based languages such as Java, Scala, Kotlin and Groovy, and LLVM-based languages like C and C++, but also more dynamic languages like Python and JavaScript. The GraalVM compiler is widely used for high-performance applications by many large companies such as Twitter, Red Hat and Alibaba.

Compilers are an essential ingredient of the computing base. Software developers need to be able to trust their compilers because an error in a compiler can manifest as erroneous generated code for any of the myriad of programs it compiles. The traditional approach to compiler verification is testing, but this cannot cover all cases and hence can only show the presence of errors, not their absence. The gold standard for producing trusted software is mechanized formal verification by theorem provers. This research project focuses on verifying optimization passes of the Graal compiler, using the Isabelle interactive theorem prover.

Verification of a compiler is a complex, time-intensive task that requires expertise in formal semantics, verification methods, mechanized theorem-proving technology, and of course compilers. Fortunately, compilers are organized into multiple passes, thus enabling the verification process to be structured to match the passes, and allowing one to build up a verified compiler pass-by-pass. Our project is focusing on modelling the Graal Intermediate Representation (IR), which is a sophisticated graph structure, and then verifying several key optimisation passes of the open-source Graal compiler. If you are interested in working with cutting-edge compiler technology and doing a PhD as part of this project, we invite you to join our team.