授課教師:陳俊良
(聯絡方式)
上課時間:週四14:10~17:00
上課教室:資訊系館101教室
| 日期 | 學號 | 姓名 |
| 5/30 | B87506046 | 陳建穎 |
| 6/6 | R90922042 | 蕭博仁 |
| 作業九 | 在KVM中的synchronized機制, wait, notify..., 有沒有可能造成deadlock, 若有, 什麼情況下造成, 若沒有, 請說明原因。 | 期限:05/30 14:10
繳交作業 | ||
| 作業八 | RESCHEDULEATBRANCH時, 若thread的priority為1時, 會做幾個instrcution才reschedule? | 期限:05/16 14:10
繳交作業 | ||
| 作業七 | java compiler用什麼方式達到先乘除後加減,例:precedence a+b*c 及:a+b-c associatility | 期限:05/02 14:10
繳交作業 | ||
| 作業六 | 為什麼在clas BatchParser中, parseName()傳回的參數要包成IdentiferToken? ex: 在packageDeclaration(), 其實也只用到t.getName(), 為什麼不傳個string就好了。 | 期限:04/25 14:10
繳交作業 | ||
| 作業五 | 在Java Compiler中,有Parser和Scanner這兩個class。試討論這兩個class應為Parser繼承Scanner、Scanner繼承Parser、或互相不繼承?儘量以OO的觀點討論各有何優缺點? | 期限:04/18 14:10
繳交作業 | ||
| 作業四 |
| 期限:04/11 14:10
繳交作業 | ||
| 作業三 | 請trace在bytecodes.c的INVOKE VIRTUAL,即2116行~2174行,包括其中呼叫的function,並繳交一份trace報告 | 期限:03/28 14:10
繳交作業 | ||
| 作業二 | iadd指令在那一個檔案的第幾行? | 期限:03/21
繳交作業 | ||
| 作業一 | Java使用stack machine,你覺得stack machine好不好?理由?(和register machine比較)。 | 期限:03/21
繳交作業 |
編譯器是計算機系統軟體最重要的核心之一。除了研讀編譯器設計的理論外,倘若能剖析一個真實的編譯器,對編譯器的理解將非常的有幫助。另一方面,Java語言是目前十分搶手的話題。目前台灣已有不算少會寫Java應用程式的人,相較起來深入瞭解Java系統內部的工程師就有限了。
這門課的目的是希望藉著剖析一個真實的編譯器,讓同學可以更深切的了解編譯器系統。我們挑定的是Sun公司的Java編譯器,即javac。另外,因為Java語言的很多功能必須要在run-time時才做得出來,我們也會談到Java Virtual Machine (JVM)。這個年度打算看的是J2ME-cldc裡頭的KVM。