推 alan23273850: 先修compiler課程?113應該有開吧 1.168.89.86 10/30 00:12
→ chuegou: 語法分析吧? 1.160.123.161 10/30 00:13
→ eddie55020: 這堂課還不錯會寫一個簡單的瀏覽器(ht140.117.181.107 10/30 08:53
→ eddie55020: ml,js)140.117.181.107 10/30 08:53
→ eddie55020: 基本的語法分析,詞法分析也講的不會140.117.181.107 10/30 08:53
→ eddie55020: 太難140.117.181.107 10/30 08:53
→ eddie55020: 對了這堂課是用Python140.117.181.107 10/30 08:55
→ bcew: nand2tetris的compiler部分可練習,不難也 223.139.157.73 10/30 12:29
推 james732: 我在天瓏買過簡體書,實作C subset的co 223.136.27.207 10/30 15:19
→ james732: mpiler 223.136.27.207 10/30 15:19
→ Epoch0404: 回alan大 學校是有開不過是大三的課 然140.113.121.228 10/30 16:16
→ Epoch0404: 然後卡我現在的必修140.113.121.228 10/30 16:16
推 Neisseria: 先寫四則運算直譯器看看,有感覺後 118.161.40.212 10/30 18:39
→ Neisseria: 再慢慢加入其他功能,比較會有具體感覺 118.161.40.212 10/30 18:40
→ Neisseria: 可以參考 bc(1) 的語法去寫 118.161.40.212 10/30 18:40
→ alan23273850: 那我覺得可以先跟學長姐打聽一下貴 123.193.38.80 10/30 19:51
→ alan23273850: 校的compiler教得好不好,如果教得 123.193.38.80 10/30 19:51
→ alan23273850: 特好,那到大三再學就可以了,一個 123.193.38.80 10/30 19:51
→ alan23273850: 教得好的老師其實不需要讓同學預習 123.193.38.80 10/30 19:52
→ alan23273850: 的,到時候你會覺得花那麼多時間自 123.193.38.80 10/30 19:52
→ alan23273850: 學CP值特低,因為老師一點就通;如 123.193.38.80 10/30 19:52
→ alan23273850: 果教得很爛,那就趕快趁現在自修, 123.193.38.80 10/30 19:52
→ alan23273850: 然後到時候修課去電其他人,因為反 123.193.38.80 10/30 19:52
→ alan23273850: 正老師教了也是聽不懂。 123.193.38.80 10/30 19:52
→ alan23273850: 不過我倒是要提醒compiler的內容對 123.193.38.80 10/30 19:53
→ alan23273850: 於一個正常學生是前所未有的概念, 123.193.38.80 10/30 19:53
→ alan23273850: 所以並不太適合自修,但可以試試。 123.193.38.80 10/30 19:53
→ alan23273850: 如果想利用時間充實自己,也不一定 123.193.38.80 10/30 19:53
→ alan23273850: 要寫compiler阿,練習當個駭客還是 123.193.38.80 10/30 19:53
→ alan23273850: 驗證碼辨識什麼的都很好。 123.193.38.80 10/30 19:53
→ jimfan: 我用bison、flex寫過interpreter都覺得頭 14.199.97.157 11/03 13:05
→ jimfan: 疼了,compiler還要輸出機器碼,應該特級 14.199.97.157 11/03 13:06
→ jimfan: 困難吧 14.199.97.157 11/03 13:06
→ bcew: 不考慮最佳化其實只是做苦工而已啦 223.140.195.48 11/03 16:23
→ bcew: 先寫個scanner把文字轉token,最簡單 223.140.195.48 11/03 16:26
→ bcew: 用遞迴的方式把所有token串成parse tree 223.140.195.48 11/03 16:28
→ bcew: 最後遍歷tree,所有基本sub-tree轉組語而已 223.140.195.48 11/03 16:33
→ bcew: 例如c=a+b就是var=exp,這exp又是var+var 223.140.195.48 11/03 16:41
→ bcew: var+var轉成mov r1,[a]; mov r2,[b]; add r1 223.140.195.48 11/03 16:44
→ bcew: ,r2; mov [tmp_01], r1; 再來換做c=exp 223.140.195.48 11/03 16:50
→ bcew: mov r1, [tmp_01]; mov [c], r1;這樣就做完 223.140.195.48 11/03 16:52
→ bcew: 機械碼和組語是一對一也很好做的 223.140.195.48 11/03 16:55
推 lc85301: 推nand2tetris ,手爆就能寫完 182.158.95.66 11/05 22:41
→ fayhong: 最近看到一個語言:Pyret,跑在 node.js111.241.215.194 11/08 09:21
→ fayhong: 換句話說,是一個可以 compile 成 js 的111.241.215.194 11/08 09:21
→ fayhong: 語言,你可以把他們的 source 抓回來研究111.241.215.194 11/08 09:21
推 fayhong: 換個角度想,你要不要先學著寫直譯器?111.241.215.165 11/13 10:57
→ fayhong: interpreter,設計一個簡單點的語言來做111.241.215.165 11/13 10:57
推 NoyVaughty: 113楊武開的編譯器風評不錯 140.113.69.32 11/17 19:08
推 hijkxyzuw: scheme 和 sicp (X140.116.102.187 02/24 23:48
→ xcycl: 看一下程式語言理論還有程式語意,再從一 92.40.249.78 04/28 19:26
→ xcycl: 個 while 語言瞭解怎麼拆解問題比較容易 92.40.249.78 04/28 19:26
推 xcycl: AST 的分析包括 tokenizer 用現代的函數式 92.40.249.78 04/28 19:28
→ xcycl: 編程,通常在一兩百行的程式碼就可以完結。 92.40.249.78 04/28 19:28
→ xcycl: 用 yacc& lex 實作浪費生命... 92.40.249.78 04/28 19:28
→ xcycl: e_imperative_language 92.40.249.78 04/28 19:35