Citadel Logo
Department of Mathematics
and Computer Science
   
Home

Academic
Programs


Courses

Student
Links


Faculty
Links


Faculty
Directory


Department
News


Search

Citadel
Home




Valid HTML 4.01!

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