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. 有同學反應系上的伺服器執行起來結果不大相同,同學交作業時可註明你是在哪一台
       上面跑的,我會配合你的環境