The Java Virtual Machine (JVM) is a well-known architecture and operating system independent virtual machine for the execution of code in the form of Java bytecode binaries. Previous work has show how to compile the functional language Haskell to Java, such that Haskell programs can be targetted to run on the JVM, enjoying all the benefits of the JVM environment. The goal of this thesis is precise: to retarget the Glasgow Haskell Compiler (GHC) to the Java Virtual Machine. This will require writing a compiler backend to generate Java suitable for execution on a JVM, and developing the Java-based runtime system in which the compiled code executes.
This thesis is a chance to get your hands dirty inside a state of the art compiler. You will learn about the design of an optimisation-by-transformation compiler and develop a deep understanding of the Java and Haskell execution models. Most significantly, you will learn how to write compiler code for a complex language at the cutting edge of language design. Your work should be committed back into GHC, for the benefit of the open source community. You should be motivated, and interested in the fundamentals of language design and implementation.Expectations