【9/7-30】弱勢助學金申請(至30日止)   ♠   【9/25】中秋節 Mid-Autumn Festival (no class)   ♠   【9/28】教師節 Teacher's Day (no class)   ♠   【9/29-11/20】期中教學意見反映(至11月20日止) Mid-term Feedback on Teaching   ♠   【10/9-10】國慶日補假 Holiday-Double Tenth Day (no class)國慶日 Double Tenth Day (no class)   ♠   【10/19-12/4】期中成績預警開始(至12 月4日止) Academic Warning System Starts   ♠   【11/11】全校運動大會(停課一天) Sports Day   ♠   【11/27-12/20】教學意見調查開始(至12月20日止) Online Course Evaluation (11/27-   ♠   【12/21-24】期末考試開始(至24日止) Final Exams   ♠   【12/25】行憲紀念日 Constitution Day   ♠   【12/28】寒假開始 Winter Break Begins   ♠  

Title

第6講 編譯器概念

第1節

L6A

第2節

L6B

第3節

L6C

第4節

L6D

Syllabus

章節大綱

Mini project : Build a calculator
https://github.com/htchen/calculator_tree

 

L6_A
       編譯器概念
       (Concept of compiler)
       詞法分析
       (Lexical Analysis) 
       - lex.c、lex.h,使用函數 : getToken()、advance()、
         match() 和 getlexeme()
 
      - lex.c、lex.h,functions : getToken()、advance()、
        match() and getlexeme())

 

L6_B
       檢查語法
       (Check expression)
       - 剖析樹
       (- Parse tree)
       - 語法樹
       (- Syntax tree)
       -將語法轉成函數
       (- Statements into functions)


L6_C
       檢查語法
       (Check expression)
       - 將語法轉成函數
       (- Statements into functions)
       - 尾端遞迴
       (- Tail recursion)
       計算數值
       (Calculate value)
       - getval()、setval() 和 Symbol table
       (- getval()、setval() and Symbol table)

 

L6_D
       錯誤訊息
       (show error)
       計算數值
       (Calculate value)
       - getval()、setval() 和 Symbol table
       (- getval()、setval() and Symbol table)
       建立Syntax tree
       (build Syntax tree)


陳煥宗教授-程式設計二講義
            
 Teaching Materials