Compiler助教網頁
作業1參考資訊
1. 如果同學找不到ANSI C語法的詳細說明,可參考
http://www.sics.se/~pd/ISO-C-FDIS.1999-04.pdf
2. 提供一些測試資料讓大家方便檢查程式的bug, 請參考
http://www.csie.ntu.edu.tw/~comp05/data
有3個測試資料data*.txt, 以及輸出檔out*.txt
(PS. 完成的同學可以看看測試的程式碼到底在玩什麼花樣^^)
3. 請大家不用擔心空格的問題,因為我會用一個lex程式再把你們的output處理一遍,只會保留
token的部分,然後再批改,要注意的應該只有token有沒有拼錯字了吧
4. 作業一繳交名單(updated)
5. 作業1評分標準:(得分為0∼10)
分數的計算有2種方式:1. 依照bug減分 2. 依照答錯的test case減分
實際得分為兩者取較高者(遇到無法判定的bug時,只好採用第2種計分方式)
〔依照bug減分〕
1.segmentation fault 減8分
2.以下情況減2分
沒有catch到所有character
大部分token之間沒空格
有些不合法的character沒有以others表示
3.其餘錯誤減1分
4.若有抄襲不論抄人與被抄一律0分(有1次上訴機會)
〔依照答錯的test case減分〕
test case共有10個(包含網頁上的3個),此處分數為答對的個數
#成績預計今日寄出(04/08/2005)
6. 遲交者依遲交天數扣分(每天減1分)
7. 請沒有收到分數通知信的同學來信詢問
作業2參考資訊
1. 作業二繳交名單(updated)
2. 作業二成績已經寄出,請檢查
作業3參考資訊
1. 作業三繳交名單
期中考:
1. 第7題的答案有錯,分數將依下列原則修正:
a.I0:S'->.S, $
S ->.L = R, $
S ->.R, $
L ->.* R, =
L ->.id, =
R ->.L, $
這種寫法漏掉的最後的L,繼續展下去,L的FOLLOW變成有'='及'$'
當S -> R -> L 的時候,會被reject(因為L的FOLLOW不可以是$)
b.I0:S'->.S, $
S ->.L = R, $
S ->.R, $
L ->.* R, =/$
L ->.id, =/$
R ->.L, $
正確答案
c.同b,但把L -> *R., $ 合併到L -> *R., =/$, 即少了4個state
原本區分成2個state的目的就是要判斷出哪些情況可以進state 1
,哪些情況可以進state 2,合併之後就無法區別
ex:S -> L = R,後面只能接'$',但若用以上的寫法,則'='
也會被接受
扣分標準(a, b小題):
(a).扣10分
(c).扣10分
請注意!!作業4的要求有改,請參考
老師的課程網頁
作業4參考資訊:
1. 部分測試資料
輸出檔中只有WRITE的部分要一樣,其他部分皆只是參考(error部分只是我預期會出
現的結果,僅供參考)
2. 批改方式:應該是用手動批改,因為要看錯誤訊息的部分,這部分稍微有一些彈性,
你可以加上錯誤的位置、可能解決方法等,讓你的compiler更人性化,會
檢查的部分是錯誤有沒有都抓到、正確的程式是否可以執行、執行結果是
否正確、以及穩定性的測試
3. 繳交作業請使用登入系統
4. 有同學反應系上的伺服器執行起來結果不大相同,同學交作業時可註明你是在哪一台
上面跑的,我會配合你的環境