Department of Computer Sciences @ Purdue University
Search | General Information | Academics | Research | People | External Relations

CS 352 Compilers: Principles and Practice

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 non-trivial programming language. Modules, interfaces, tools. Data structures for tree languages. Lexical analysis, syntax analysis, abstract syntax. Symbol tables, semantic analysis. Translation, intermediate code, basic blocks, traces. Instruction selection, CISC and RISC machines. Liveness analysis, graph coloring register allocation. Supplemental material drawn from garbage collection, object-oriented languages, higher-order languages, dataflow analysis, optimization, polymorphism, scheduling and pipelining, memory hierarchies.

Usually Offered: Fall and Spring
Credit: 3 hours (class)
Prerequisite: CS 250
Corequisite: CS 251
Restrictions: Should not be taken concurrently with CS 354.
University Catalog: CS 352
Schedule: Fall 2002
Instructor: Tony Hosking
Syllabi: Canonical