課程大綱 Syllabus |
分配時數 (小時) |
備註 Notes |
單元主題 Unit topic |
內容綱要 Content summary |
講授 |
示範 |
習作 |
其他 |
Introduction to compiler |
Language Processors
The Structure of a Compiler
The Evolution of Programming Languages
The Science of Building a Compiler
Applications of Compiler Technology
Programming Language Basics |
3 |
0 |
0 |
0 |
|
A Simple Syntax-Directed Translator |
Introduction
Syntax Definition
Syntax-Directed Translation
Parsing
A Translator for Simple Expressions
Lexical Analysis
Symbol Tables
Intermediate Code Generation |
6 |
0 |
0 |
0 |
|
Lexical Analysis |
Introduction
Input buffering
Specification of tokens
Recognition of tokens
The lexical analyzer generator Lex
Finite automata
From regular expressions to automata
Design of a lexical analyzer generator |
6 |
0 |
0 |
0 |
|
Syntax Analysis |
Introduction
Context-Free Grammar
Writing a Grammar
Top-Down Parsing
Bottom-Up Parsing
Introduction to LR Parsing: Simple LR
More Powerful LR Parsers
Using Ambiguous Grammars
Parser Generators |
12 |
0 |
0 |
0 |
|
Syntax-Directed Translation |
Syntax-Directed Definitions
Evaluation Orders for SDD's
Applications of Syntax-Directed Translation
Syntax-Directed Translation Schemes |
9 |
0 |
0 |
0 |
|
Intermediate-Code Generation |
Variants of Syntax Trees
Three-Address Code
Types and Declarations
Translation of Expressions |
6 |
0 |
0 |
0 |
|
Run-Time Environment |
Storage organization
Stack allocation of space
Access to nonlocal data on the stack
Heap management
Introduction to grabage collection |
6 |
0 |
0 |
0 |
|
Code Generation |
Issue in the Design of a Code Generator
The Target Language
Addresses in the Target Code
basic Blocks and Flow Graphs
A Simple Code Generator
Register Allocation and Assignment
Instruction Selection by Tree Rewriting |
6 |
0 |
0 |
0 |
|