CSI4104 Compiler Design
Description
A compiler is a computer program that translates text written in a given language (called the source language) into another language (the target language). With most compilers the source language is a high-level programming language (e.g., C, C++, Java), and the target language is a lower-level representation such as assembly language or bytecode. In this course we will focus on compiler techniques needed to implement programming languages on a virtual machine. Students will implement a compiler that translates a subset of C into Java bytecode. This bytecode can then be executed on the Java virtual machine (JVM). The aims of this course are to
- improve programming skills by learning how a compiler works,
- apply the theoretical foundations of compilation techniques,
- design and implement a compiler for a small programming language,
- learn about virtual machines (the JVM in particular), and
- practice software engineering design principles on a medium-sized project.
Course information
Complete information about the course will be published on the course web site.