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.