課程名稱 |
高等編譯器設計 ADVANCED COMPILER DESIGN |
開課學期 |
97-1 |
授課對象 |
電機資訊學院 資訊工程學研究所 |
授課教師 |
陳俊良 |
課號 |
CSIE5054 |
課程識別碼 |
922 U1220 |
班次 |
|
學分 |
3 |
全/半年 |
半年 |
必/選修 |
選修 |
上課時間 |
星期四2,3,4(9:10~12:10) |
上課地點 |
資105 |
備註 |
限學士班三年級以上 且 限電資學院學生(含輔系、雙修生) 總人數上限:50人 |
Ceiba 課程網頁 |
http://ceiba.ntu.edu.tw/971compiler2 |
課程簡介影片 |
|
核心能力關聯 |
核心能力與課程規劃關聯圖 |
課程大綱
|
為確保您我的權利,請尊重智慧財產權及不得非法影印
|
課程概述 |
編譯器負責把利用高階語言撰寫的程式轉成低階語言的格式,以利硬體的執行,是計算機系統最重要的軟體之一。倘若在研習過編譯器的基本理論後,實際研讀真實的編譯器程式碼,將可以對編譯器有更深一層的理解。
另一方面,由於SoC,目前台灣業界已擁有自製CPU硬體的能力;緊接著該考慮如何有效發揮自製CPU的效能,此時編譯器的角色將相形重要。一般而言,重頭開發一個編譯器代價甚大,或者說沒有必要,替代方案是移植並修改現有的編譯器。GCC (Gnu Compiler Collection) 是一個被廣泛使用開放原碼 (open source) 的編譯器系統,是上述需求的良好選擇。
本課程主要內容是研讀GCC原始碼,並兼顧及其他編譯器相關議題。 |
課程目標 |
本課程的目標在於讓修課同學:
1. 了解GCC的程式大架構、中間碼 (intermediate representation) 格式、機器描述 (machine description,用以表達目標碼的CPU指令),等GCC的重要元件。
2. 經由研讀GCC原始碼 (用C語言撰寫的),加強C語言的程式技巧,以及培養研讀大型軟體的能力。
3. 更進一步,有能力幫GCC增添一個最佳化程序 (optimization pass) 和更改GCC的機器描述,以適應特殊CPU的特殊需求。 |
課程要求 |
|
預期每週課後學習時數 |
|
Office Hours |
另約時間 備註: :大部分時間我都在系館,請直接到509室找我,或者請eMail約時間 |
指定閱讀 |
|
參考書目 |
請見第一週投影片 |
評量方式 (僅供參考) |
No. |
項目 |
百分比 |
說明 |
1. |
期中口考 |
30% |
暫訂,教師保留更改之權利。 |
2. |
實驗一 |
0% |
暫訂,教師保留更改之權利。 |
3. |
實驗二 |
15% |
暫訂,教師保留更改之權利。 |
4. |
實驗三 |
15% |
暫訂,教師保留更改之權利。 |
5. |
實驗四 |
15% |
暫訂,教師保留更改之權利。 |
6. |
作業 |
15% |
暫訂,教師保留更改之權利。 |
7. |
課堂表現 |
10% |
暫訂,教師保留更改之權利。 |
|