 |
Course Description
Programming language grammars and normal forms, parsing algorithms and
semantics specification, optimization, error recovery. Translator writing systems
and extensible languages. Prerequisite: CS 5090 or CS 5100.
Course Syllabus
- Generating code for a stack computer
-
Scanning-Theory and Practice
- Regular expressions
- Finite automata and scanners
- Use of Flex (or Lex) to generate a scanner
-
Grammars and Parsing
- Context-free grammars
- Handling errors in context-free grammars
- Parsers and recognizers
- Grammar Analysis Algorithms
-
LR Parsing
- LR Parsers
- LR(1) Parsing
- SLR(1) Parsing
- LALR(1) Parsing
- Use of Bison (or Yacc) to generate a parser
-
Semantic Processing
- Intermediate representation and code generation
-
Run-time Storage Organization
- Static allocation
- Stack allocation
- Heap allocation
-
Other Topics
- Implementation of advanced language concepts
- Code generation and local code optimization
Course Project Implementing a compiler or interpreter using Flex (or Lex) and
Bison (or Yacc).
Other Assignments Homework exercises will be assigned throughout the term.
|