Course Description

Studying compilers will give the student an indepth knowledge of programming languages, including text analysis, including grammar and semantics, as well as the theories behind them. It also teaches a wealth of knowledge about programming language internals. This helps the student to write more efficient high level language code.

Specifically, we will discuss how to write grammars for languages, how to parse and translate code in the language, and the theories behind these tasks. Over the course of the semester, we will implement a compiler for a small language that will generate MIPS assembler code. Through the implementation, we will learn how programming language elements are implemented, how to set up a runtime environment, and an assembly language.