CSCD 415: Compilers

Credits: 3

This course will provide introduction to the field of compilers, which translate programs written in high-level languages to a form that can be executed. The course covers the theories and mechanisms of compilation tools. Students will learn the core ideas behind compilation and how to use software tools such as lex/flex, yacc/bison to build a compiler for a non-trivial programming language. The theory and practice of programming language translation, compilation, and run-time systems, organized around a significant programming project to build a compiler for a simple but nontrivial programming language. Modules, interfaces, tools. Data structures for tree languages. Topics Include: Compiler Design ; Lexical Analysis ; Syntax Analysis - grammars, LL(1) parsers, LR(1) parsers ; Semantic Processing  ; Code generation and optimization