1015 - 編譯器
Compiler
教育目標 Course Target
At the end of this course, students should be able to:
1. Understand the principles and techniques of automatic program generators.
2. Understand lexical analysis and implement a scanner for a simple language using a scanner generator.
3. Understand syntax analysis and implement a parser for a simple language using a parser generator.
4. Understand semantic analysis and implement an abstract syntax tree constructor for a simple language using a bottom-up translator generator.
5. Understand intermediate code generation and implement a pretty printer for a simple language using a recursive evaluator.
6. Understand code generation and implement a code generator for a simple language using a recursive evaluator.
Programming language representation: concrete and abstract syntax, context free grammars. Use of lexer and parser generators. Implementation of expressions and statements in a simple language by postfix code and by simple machine code; simple optimizations. Procedures: value, name and reference parameters, local and non-local variables, static and dynamic binding. Abstract machines and storage management: activation records, static and dynamic chains, stacks and heaps.
At the end of this course, students should be able to:
1. Understand the principles and techniques of automatic program generators.
2. Understand lexical analysis and implement a scanner for a simple language using a scanner generator.
3. Understand syntax analysis and implement a parser for a simple language using a parser generator.
4. Understand semantic analysis and implement an abstract syntax tree constructor for a simple language using a bottom-up translator generator.
5. Understand intermediate code generation and implement a pretty printer for a simple language using a recursive evaluator.
6. Understand code generation and implement a code generator for a simple language using a recursive evaluator.
Programming language representation: concrete and abstract syntax, context free grammars. Use of lexer and parser generators. Implementation of expressions and statements in a simple language by postfix code and by simple machine code; simple optimizations. Procedures: value, name and reference parameters, local and non-local variables, static and dynamic binding. Abstract machines and storage management: activation records, static and dynamic chains, stacks and heaps.
課程概述 Course Description
A compiler is a program that translates programs written in a source language into programs written in a target language. This course introduces the principles, techniques and tools for constructing a compiler. An emphasis is also placed on a programming project that applies the techniques and tools learned from the course to implement a compiler for a small language.
A compiler is a program that translates programs written in a source language into programs written in a target language. This course introduces the principles, techniques and tools for constructing a compiler. An emphasis is also placed on a programming project that applies the techniques and tools learned from the course to implement a compiler for a small language.
參考書目 Reference Books
書名 Compilers: Principles, Techniques, and Tools
出版社 Addison-Wesley
作者 A. V. Aho, R. Sethi, and J. D. Ullman
出版年 2007
Book Name Compilers: Principles, Techniques, and Tools
Publisher Addison-Wesley
Authors A. V. Aho, R. Sethi, and J. D. Ullman
Year of Publishing 2007
評分方式 Grading
評分項目 Grading Method |
配分比例 Percentage |
說明 Description |
---|---|---|
作業 Action |
20 | |
小考 Small exam |
10 | |
專題 Special topic |
20 | |
期中考 Midterm exam |
25 | |
期末考 Final exam |
25 |
授課大綱 Course Plan
點擊下方連結查看詳細授課大綱
Click the link below to view the detailed course plan
相似課程 Related Courses
無相似課程 No related courses found
課程資訊 Course Information
基本資料 Basic Information
- 課程代碼 Course Code: 1015
- 學分 Credit: 0-3
-
上課時間 Course Time:Monday/6,7,8[波錠廳]
-
授課教師 Teacher:楊朝棟
-
修課班級 Class:資工系3
-
選課備註 Memo:3A、3B、3C併班
交換生/外籍生選課登記
請點選上方按鈕加入登記清單,再等候任課教師審核。
Add this class to your wishlist by clicking the button above.