8103 - 程式語言與編譯器

Programming Language and 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.
7. Understand principles of functional, imperative, and logic programming languages.
8. Understand meta-circular interpreters, semantics (operational and denotational), type systems (polymorphism, inference, and abstract types), object oriented programming.

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.
7. Understand principles of functional, important, and logic programming languages.
8. Understand meta-circular interpreters, semantics (operational and denotational), type systems (polymorphism, inference, and abstract types), object oriented programming.

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.

參考書目 Reference Books

class note/self editing

class note/self editing

評分方式 Grading

評分項目
Grading Method
配分比例
Percentage
說明
Description
midterm
midterm
15
final
Final
15
homework/quiz
homework/quiz
70

授課大綱 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: 8103
  • 學分 Credit: 3-0
  • 上課時間 Course Time:
    Tuesday/11,12,13[ST436]
  • 授課教師 Teacher:
    許宏誌
  • 修課班級 Class:
    資工系3
選課狀態 Enrollment Status

目前選課人數 Current Enrollment: 18 人

交換生/外籍生選課登記

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