|
CS 4430 Compilers I Syllabus
Overview: The compiler is the programmer's most important tool. It gives the programmer the freedom to write practical programs in a high-level programming language while still achieving good execution times and efficient use of space. In this course, we study the principles underlying the design of most compilers, and we will actually write a simple compiler. The course topics will span formal foundations to modular software development. Compilers are fundamentally translators from a human-readable language into a machine-readable language. The principles and programming techniques that are required for implementing this translation process involve ideas from symbolic computation, data structures and algorithms, automata theory, and formal semantics.
Textbook: Fischer & Le Blanc Crafting a Compiler with C Benjamin/Cummings, 1991 Prerequisites: CECS 126 and MATH 226
Topics: 1. Lexical Syntax & Scanners (2weeks) 2. Grammatical Structure & Parsing (3 weeks) 3. Typechecking (1 week) 4. Intermediate Code Generation (4 weeks) 5. Code Optimization (3 weeks) 6. Run-time System Design (2 weeks)
Prepared by: Bill Harrison
Date: September 2004 Introduction to the translation of programming languages by means of interpreters and compilers. Lexical analysis, syntax specification, parsing, error-recovery, syntax-directed translation, semantic analysis, symbol tables for blockstructured languages, and run-time storage organization. Prerequisite: CS 3270 and MATH 2320.
|