CSCI 412 Compiler Design
Course Description:
CSCI 412 Compiler Design
Three Credit Hours
Prerequisite: CSCI 223 and CSCI 305
A study of the component operations of a compiler, including lexical analysis,
syntax analysis, scope analysis, and code generation, and a discussion of related implementation
issues. A significant part of the course will be a project to develop a compiler for a simplified
programming language.
Major Topics:
- Context-free grammars
- Lexical Analysis (Scanning)
- Syntax Analysis (Parsing)
- Abstract Syntax Trees
- Constraint Analysis
- Error Recovery
- Run-time Organization
- Code Generation
- Optimization
Course Outcomes:
Upon successful completion of this course, a student will be able to
- Understand the formalisms and techniques used in the specification of programming languages (regular expressions, context-free grammars, contextual constraints, etc.)
- Analyze context-free grammars to compute first and follow sets
- Describe the basic structure of a compiler in terms of its functional components (lexical analysis, syntax analysis, semantic analysis, error handling/recovery, code generation, and optimization)
- Design, implement, and test a compiler for a small programming language.
Textbook:
Programming Language Processors in Java: Compilers and Interpreters
by David A. Watt and Deryck F. Brown, Prentice Hall, 2000.
Projected Schedule:
Every Other Spring (Odd Calendar Years)
Recent Syllabi:
Spring 2007, Moore
|