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

查看授課大綱 View 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併班
選課狀態 Enrollment Status

目前選課人數 Current Enrollment: 164 人

交換生/外籍生選課登記

請點選上方按鈕加入登記清單,再等候任課教師審核。
Add this class to your wishlist by clicking the button above.