111年第2學期-1040 編譯器 課程資訊

評分方式

評分項目 配分比例 說明
作業 20
小考 10
專題 20
期中考 25
期末考 25

選課分析

本課程名額為 120人,已有85 人選讀,尚餘名額35人。


登入後可進行最愛課程追蹤 [按此登入]。

授課教師

楊朝棟

教育目標

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.

課程概述

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.

課程資訊

參考書目

書名 Compilers: Principles, Techniques, and Tools
出版社 Addison-Wesley
作者 A. V. Aho, R. Sethi, and J. D. Ullman
出版年 2007

開課紀錄

您可查詢過去本課程開課紀錄。 編譯器歷史開課紀錄查詢