The Military College of South Carolina Dare to Lead

Info Academics Admissions Alumni Cadet Life Graduate College Evening Undergrad Athletics Connect Giving
Close this window

Giving to The Citadel

  • The Citadel Foundation
  • Blueprint
  • The Citadel Brigadier Foundation

CSCI 412: Compiler Design

Course Description:

CSCI 412 Compiler Design Three Credit Hours
Prerequisite: CSCI 223 and CSCI 305
This course explores the basic principles, algorithms, data structures, and tools involved in the design and construction of compilers. Topics include formal grammars, lexical analysis, parsing algorithms, semantic analysis, error recovery, code generation, and optimization. Each student will be required to complete a substantial programming project, the implementation of a compiler for a small 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 two or three years as needed.

Recent Syllabi:

Spring 2012, Moore