在作答yacc 的題目時,請同學上傳你們的.l 跟.y 檔案。上傳兩個檔案的方法如附圖所示,請先選擇繳交語言爲`yacc`,然後點選`Add another source file` 然後選擇要上傳的 ... ... <看更多>
yacc 教學 在 Part 01: Tutorial on lex/yacc - YouTube 的美食出口停車場

This is a two part video tutorial on lex and yacc. This first screencast will introduce lex / flex, the UNIX tokenizer generator. ... <看更多>
yacc 教學 在 【請益】 yacc與lex 四則運算- Programming板 的美食出口停車場
[請益] yacc與lex 四則運算 ... Yacc: %{ #include <stdio.h> #include <stdlib.h> #include "y.tab.h" ... [閒聊] 手把手教你不被桶之新手主購教學. ... <看更多>
yacc 教學 在 Re: [問題] 如何學寫COMPILER? [純拋磚引玉] - 看板Programming 的美食出口停車場
... 幸福)》之銘言: > AFAIK gcc 4.1.1 還在用flex (lex clone) / bison (yacc clone). ... 嗯,所以GCC 不是工業強度等級的軟體,純粹就只是一個教學用具而已,對吧? ... <看更多>
yacc 教學 在 [心得] 游逸平編譯器設計概論- 看板NCTU-Teacher - 批踢踢實業坊 的美食出口停車場
⊕課名⊕
編譯器設計概論
▲教授▲
游逸平
★修課年度★
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
※ 編輯: bh2142 (42.72.147.122 臺灣), 02/20/2022 09:55:25
... <看更多>