[心得] 游逸平 編譯器設計概論

看板NCTU-Teacher作者 (瀕臨絕種的Emacser)時間2年前 (2022/02/10 20:32), 2年前編輯推噓6(600)
留言6則, 6人參與, 2年前最新討論串1/1
⊕課名⊕ 編譯器設計概論 ▲教授▲ 游逸平 ★修課年度★ 110 £教了什麼£(課程大概內容。或是額外學會了什麼東西。) 一點正規語言(DFA, NFA, CFG) LL LR LALR Parser Semantic Analysis Run Time Environment IR Code Generation lex(flex) yacc(bison) Optimization 基本上沒教 ◆上課方式◆(投影片、團體討論、老師教學風格) 投影片上課 這學期線上授課,也會上傳錄影,可以1.5倍速看 老師語速很慢,講解的非常清楚 建議準時上課,看了不虧 我幾乎沒跟著上課,後來連影片都懶得看了 作業、投影片都會放在 github 上面 十分先進,可以參考改革這個課的助教的blog https://bit.ly/3uV2aHx ▼考試作業▼ 期中期末考各一 期中考會考正規跟各種 parser 如果你掌握度夠好就沒問題 真的懂每個 parser 在幹麻的話其實蠻簡單的 但如果是臨時抱佛腳的話他們沒有到很好懂 細節不少 分數差距很大,有人96分有人36分 期末考有上課+寫寫考古就可以很高了 作業是用 flex 和 bison 做一個類似 Pascal 語言的 Compiler,拆成五次作業 Lexer Parser AST Construction Type Checking RISCV assembly Generation 會提供一個 docker image 當作評分環境 作業的測資都有事先公布 自己測有通過就可以拿滿 要寫一個簡單的 report 說自己怎麼做的 作業和作業之間有連貫性 可以用自己做完的部分繼續往下做 也可以用批改完之後助教公佈的版本做 應該多數人都是用助教給的版本 前兩個作業很簡單 照 spec 寫寫 regex 和 grammar 就好 之後的作業需要 C++ 和 OOP 概念 資工系的 OOP 課大多無法滿足這方面的能力 作業做起來可能會比較痛苦 跟著 spec 做加上有同學可以問的話應該也不是太困難 作業 4 5 可能需要花上超過 20 個小時來寫 建議用一個功能強大的編輯器/IDE來寫 最好有好的 code navigation 和 on-the-fly syntax checking 功能 可以節省巨量時間 作業五非加分題的部分只要處理整數就好算是簡單 因為是 riscv asm 用 spike 去模擬,所以 debug 比較麻煩沒辦法簡單直接丟 gdb(其實 還是做得到) 組語的部分如果計組學的是 MIPS 也不用擔心,沒有什麼太大的區別 ¥其他¥(是否注重出席率or嚴禁遲到?需要的基礎?) 無點名 修過正規的話前面的課有一大部分重複 (雖然我期中考都錯正規的東西XD) ¢最後想說的話¢ 這課是個作業課 分數很好拿 作業有大量繁瑣又不用動腦的操作 雖然用助教的 code 比較方便 但是會一直覺得靠北他寫這沙小有夠醜 (當然我寫不出更好的,出這作業的助教已經非常用心了) 雖然我覺得偏無聊,尤其作業實在是太繁瑣了 但我認識的人對這課的評價都還不錯 其他人的評價 「扎實的好課」 「幫你複習OOP的好課」 「課程內容基礎,作業偏重但紮實,幫助你學習OOP或學習抄code的好課」 「需要好的OOP基礎,阿如果不會的話就去抄code吧。然後期中期末有寫考古,基本上就有 分」 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.73.242.106 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/NCTU-Teacher/M.1644496375.A.4B5.html ※ 編輯: bh2142 (42.73.242.106 臺灣), 02/10/2022 20:35:45

02/10 20:44, 2年前 , 1F
作業3,4真的硬==
02/10 20:44, 1F

02/10 21:21, 2年前 , 2F
02/10 21:21, 2F

02/10 23:35, 2年前 , 3F
02/10 23:35, 3F

02/11 03:49, 2年前 , 4F
02/11 03:49, 4F

02/11 15:40, 2年前 , 5F
02/11 15:40, 5F

02/17 13:03, 2年前 , 6F
個人覺得oop的成份沒那麼大,就一些基本的就夠了
02/17 13:03, 6F
我也這麼覺得,但就真的很多人連基本的都不會 ※ 編輯: bh2142 (42.72.147.122 臺灣), 02/20/2022 09:55:25
文章代碼(AID): #1Y1GNtIr (NCTU-Teacher)