內容簡介
本書是與《計算機組成原理(第2版)》(蔣本珊編著,清華大學出版社出版)一書完全配套的教師用書。全書共8章,與主教材的章節完全相同,每一章都按基本內容要求、教師授課參考、誤點疑點解惑、相關知識介紹和教材習題解答等5個板塊進行組織。全書概念清楚,通俗易懂,由淺入深,其核心內容是每一章的誤點疑點解惑和相關知識介紹兩大板塊。各章中都以專題的形式對有關問題進行了比較詳細和深入的討論,並且通過一些例題來幫助讀者加深對“計算機組成原理”課程所學知識的理解。
本書是教師講授
圖書前言
普通高等教育“十一五”國家級規劃教材21世紀大學本科計算機專業系列教材
本書責任編委: 袁開榜
序 言PREFACE21世紀是知識經濟的時代,是人才競爭的時代。隨著21世紀的到來,人類已步入信息社會,信息產業正成為全球經濟的主導產業。計算機科學與技術在信息產業中占據了最重要的地位,這就對培養21世紀高素質創新型計算機專業人才提出了迫切的要求。
為了培養高素質創新型人才,必須建立高水平的教學計畫和課程體系。在20多年跟蹤分析ACM和IEEE計算機課程體系的基礎上,緊跟計算機科學與技術的發展潮流,及時制定並修正教學計畫和課程體系是尤其重要的。計算機科學與技術的發展對高水平人才的要求,需要我們從總體上最佳化課程結構,精煉教學內容,拓寬專業基礎,加強教學實踐,特別注重綜合素質的培養,形成“基礎課程精深,專業課程寬新”的格局。
為了適應計算機科學與技術學科發展和計算機教學計畫的需要,要採取多種措施鼓勵長期從事計算機教學和科技前沿研究的專家教授積極參與計算機專業教材的編著和更新,在教材中及時反映學科前沿的研究成果與發展趨勢,以高水平的科研促進教材建設。同時適當引進國外先進的原版教材。
為了提高教學質量,需要不斷改革教學方法與手段,倡導因材施教,強調知識的總結、梳理、推演和挖掘,通過加快教案的不斷更新,使學生掌握教材中未及時反映的學科發展新動向,進一步拓廣視野。教學與科研相結合是培養學生實踐能力的有效途徑。高水平的科研可以為教學提供最先進的高新技術平台和創造性的工作環境,使學生得以接觸最先進的計算機理論、技術和環境。高水平的科研還可以為高水平人才的素質教育提供良好的物質基礎。學生在課題研究中不但能了解科學研究的艱辛和科研工作者的奉獻精神,而且能薰陶和培養良好的科研作風,鍛鍊和培養攻關能力和協作精神。
進入21世紀,我國高等教育進入了前所未有的大發展時期,時代的進步與發展對高等教育質量提出了更高、更新的要求。2001年8月,教育部頒發了《關於加強高等學校本科教學工作,提高教學質量的若干意見》。檔案指出,本科教育是高等教育的主體和基礎,抓好本科教學是提高整個高等教育質量的重點和關鍵。隨著高等教育的普及和高等學校的擴招,在校大學本科計算機專業學生的人數將大量上升,對適合21世紀大學本科計算機科學與技術學科課程體系要求的,並且適合中國學生學習的計算機專業教材的需求量也將急劇增加。為此,中國計算機學會和清華大學出版社共同規劃了面向全國高等院校計算機專業本科生的 "21世紀大學本科計算機專業系列教材”。本系列教材借鑑美國ACM 和IEEE最新制定的Computing Curricula 2005(簡稱CC2005)課程體系,反映當代計算機科學與技術學科水平和計算機科學技術的新發展、新技術,並且結合中國計算機教育改革成果和中國國情。
計算機組成原理教師用書(第2版)中國計算機學會教育專業委員會和全國高等學校計算機教育研究會,在清華大學出版社的大力支持下,跟蹤分析CC2001,並結合中國計算機科學與技術學科的發展現狀和計算機教育的改革成果,研究出了《中國計算機科學與技術學科教程2002》 (China Computing Curricula 2002,簡稱CCC2002) ,該項研究成果對中國高等學校計算機科學與技術學科教育的改革和發展具有重要的參考價值和積極的推動作用。
"21世紀大學本科計算機專業系列教材”正是借鑑美國ACM 和IEEE CC2005課程體系,依據CCC2002基本要求組織編寫的計算機專業教材。相信通過這套教材的編寫和出版,能夠在內容和形式上顯著地提高我國計算機專業教材的整體水平,繼而提高我國大學本科計算機專業的教學質量,培養出符合時代發展要求的具有較強國際競爭力的高素質創新型計算機人才。
中國工程院院士
國防科學技術大學教授
21世紀大學本科計算機專業系列教材編委會名譽主任前言(第2版)FOREWORD2007年,本書與主教材《計算機組成原理》和輔助教材《計算機組成原理學習指導與習題解析》一起入選教育部普通高等教育“十一五”國家級規劃教材。計算機組成原理》的相關教材已經形成了一個比較完整的教材教學體系,可以適應大多數高校的計算機及相關專業“計算機組成原理”課程教學的需要,受到了廣大老師和學生的歡迎。
《計算機組成原理(第2版)》已於2008年9月正式出版,2009年4月該書獲得兵工高校優秀教材一等獎。隨後,《計算機組成原理學習指導與習題解析(第2版)》正式出版,對教師用書的修訂需求也提上了議事日程。此次修訂,保留了原書的框架和風格,但每一章都增加了“教師授課參考”版塊,其目的之一是為本課程的主講教師提供一些教學建議,目的之二是因為計算機學科研究生入學考試從2009年開始實行聯合命題,統一考試,所以在此版塊中對《全國碩士研究生入學統一考試計算機科學與技術學科聯考計算機學科專業基礎考試大綱》進行了介紹,並與主教材的章節進行了對照,以便教師在教學中注意相關的知識點。
希望本書能成為主講教師講授“計算機組成原理”課程時的指南和助手。本書也可供學生學習“計算機組成原理”課程時參考。
本書在編寫過程中,歐陽凌幫助整理了“教材習題解答”版塊,對全部習題及解答進行了審校,在此表示感謝。
本書第1版自面市以來,收到了許多同行和讀者發來的電子郵件,對於讀者的來信本人均給予了一一回復和解答。希望修訂之後的本書能對您有所幫助,歡迎來信提出意見和建議。2009年8月於北京理工大學前言(第1版)FOREWORD“計算機組成原理”是計算機各類專業學生的必修核心課程之一,主要討論計算機各大部件的基本組成原理,以及各大部件互連構成整機系統的技術。本課程在計算機學科中處於承上啟下的地位,具有內容多、難度大等特點。本書根據作者本人近二十年來從事“計算機組成原理”課程教學的經驗和體會整理編寫而成,以滿足講授“計算機組成原理”課程的教師的需要。本書的使用將有助於教師對主教材和相關背景知識的理解,對於改進教學方法,提高教學質量都有著積極的意義。
本書是與已列入中國計算機學會和清華大學出版社共同規劃的“21世紀大學本科計算機專業系列教材”之一的《計算機組成原理》一書完全配套的教師參考用書。全書共分為8章,與主教材的章節完全相同,每一章都按基本內容要求、誤點疑點解惑、相關知識介紹和教材習題解答等四個版塊進行組織。
第一版塊按照了解、理解、掌握3個不同的層次對各章節的教學內容提出了基本要求,既方便教師在教學過程中根據實際的教學課時數合理地安排教學內容,也方便學生在學習過程中把握住重點。
第二版塊結合作者的教學經驗和體會,對本課程學習過程中容易出現的誤點與疑點問題進行答疑解惑,指出了教學過程中需要特別注意的問題。
第三版塊對主教材中由於篇幅原因沒有能夠展開的內容以及與本課程密切相關的背景知識進行介紹和討論,以豐富讀者的視野。
第四版塊則給出了主教材中所附全部習題較為詳細的解答過程與參考答案,這是應一些讀者的要求而寫的。
本書是根據中國計算機學會教育委員會制定的“中國計算機科學與技術學科教程2002" (CCC2002)對課程教學內容的要求,結合作者講授本課程近二十年的教學經驗和體會“磨”出來的。全書概念清楚、由淺入深。全書的核心內容是每一章的誤點疑點解惑和相關知識介紹兩大板塊,在每章中都以專題的形式對有關問題進行了比較詳細和深入的討論,並且還給出了一些例題以幫助讀者加深對有關知識點的理解。
考慮到本書的主要讀者對象應該是講授本課程的教師,所以在本書每一章的最後一個板塊給出了主教材中全部習題的詳解,以供講授和輔導時參考。要注意的是,有些習題的答案並不唯一,設計也不一定最優,讀者可以根據解題思路自己解答,不要受到參考答案的限制和束縛。還需要特別指出的是,建議學生讀者在學習過程中最好不要先看這一部分內容,一定要給自己留下一個獨立思考的空間。
“主教材《計算機組成原理》一書自2004年3月出版以來,受到讀者的歡迎和專家的認可,並已於2004年底被評為北京市精品教材,與主教材配套的《計算機組成原理學習指導與習題解析》一書也於不久前面世,此次本書的問世將會使這套書錦上添花,它們將與《計算機組成原理電子教案》一起,構成一個本課程的立體教材體系。
計算機組成原理教師用書(第2版)本書既與主教材有緊密的關係,又獨立成書,可以單獨使用;既可作為教師講授“計算機組成原理”課程時的參考書,也可作為學生學習“計算機組成原理”課程時的參考書。
在本書編寫過程中得到了“21世紀大學本科計算機專業系列教材”編委會的多次指導和建議,清華大學出版社的編輯們也為本書的出版做了許多工作。在此對他們辛勤的工作和熱情的支持表示誠摯的感謝!
由於時間的原因以及個人的水平限制,書中難免出現錯誤和不妥之處,歡迎同行和廣大讀者批評指正。
作 者
2005年4月於北京理工大學
圖書目錄
第1章 概論11.1 基本內容要求1
1.2 教師授課參考2
1.3 誤點疑點解惑2
1.4 相關知識介紹5
1.5 教材習題解答11
第2章 數據的機器層次表示13
2.1 基本內容要求13
2.2 教師授課參考14
2.3 誤點疑點解惑15
2.4 相關知識介紹28
2.5 教材習題解答41
第3章 指令系統51
3.1 基本內容要求51
3.2 教師授課參考52
3.3 誤點疑點解惑53
3.4 相關知識介紹68
3.5 教材習題解答80
第4章 數值的機器運算89
4.1 基本內容要求89
4.2 教師授課參考90
4.3 誤點疑點解惑91
4.4 相關知識介紹98
4.5 教材習題解答116
第5章 存儲系統和結構130
5.1 基本內容要求130
5.2 教師授課參考131
5.3 誤點疑點解惑132
5.4 相關知識介紹145
5.5 教材習題解答158
第6章 中央處理器171
6.1 基本內容要求171
6.2 教師授課參考172
6.3 誤點疑點解惑173
6.4 相關知識介紹189
6.5 教材習題解答205
第7章 外部設備218
7.1 基本內容要求218
7.2 教師授課參考219
7.3 誤點疑點解惑220
7.4 相關知識介紹233
7.5 教材習題解答244
第8章 輸入輸出系統252
8.1 基本內容要求252
8.2 教師授課參考253
8.3 誤點疑點解惑254
8.4 相關知識介紹266
8.5 教材習題解答280
主要參考文獻292
目 錄計算機組成原理教師用書(第2版)第1章 編譯程式理論概述1
1.1 導言1
1.2 語言及其翻譯1
1.3 語法的功能3
1.4 程式設計語言的發展4
1.5 編譯程式的結構6
1.5.1 詞法分析7
1.5.2 字元串表9
1.5.3 語法分析9
1.5.4 語義分析10
1.5.5 符號表10
1.5.6 代碼最佳化程式10
1.5.7 代碼生成程式11
1.6 特殊約定12
縮寫詞與關鍵字12
習題12
第2章 語法及其分類14
2.1 概述14
2.2 文法14
2.2.1 字母表與字元串14
2.2.2 非終結符與產生式15
2.2.3 文法的例子15
2.3 文法及語言的Chomskey分類17
2.4 規範推導18
2.5 文法的二義性19
習題20
編譯原理計算機組成原理教師用書(第2版)第3章 掃描器與正規語言22
3.1 詞法分析程式簡介22
3.2 正規表達式22
3.2.1 正規表達式代數23
3.2.2 正規表達式的性質24
3. 3 有限狀態自動機27
3. 4 非確定的有限狀態自動機29
3. 5 將正規文法轉換為自動機30
3. 6 NDFA的確定化及化簡33
3. 7 從有限狀態自動機轉換到正規文法40
3. 8 有限自動機在計算機中的實現40
3. 9 掃描器實現中的特殊問題42
3. 9. 1 輸入符號表42
3. 9. 2 掃描器自動機中的終止狀態42
3. 9. 3 刪除空白符號與注釋43
3. 9. 4 輸出單詞43
3. 10 字元串表的實現46
3.11 保留字47
3.12 使用掃描器自動生成工具48
縮寫詞與關鍵字48
習題48
第4章 語法分析與前後文無關文法51
4. 1 導論51
4. 2 下推自動機51
4. 2. 1 停機條件的等價性53
4. 2. 2 從前後文無關文法CFG構造PDA54
4. 3 LL(?k?)規範文法55
4. 3. 1 FIRST集與FOLLOW集56
4. 3. 2 選擇集合58
4. 4 文法的左遞歸性59
4. 5 公共左因子60
4. 6 用正規表達式運算符拓廣CFG61
4. 7 遞歸下降分析程式62
4. 8 作為下推自動機的遞歸下降分析程式64
4.9 自底向上的語法分析器的構造66
4. 9. 1 自底向上的語法分析66
4. 9. 2 LR (?k?)分析法69
4. 10 錯誤的發現84
4.11 使用語法分析器生成工具85
關鍵字86
習題86
第5章 語義分析與屬性文法88
5.1 引言88
5.2 屬性文法AG88
5.2.1 繼承屬性和綜合屬性90
5.2.2 屬性值流93
5.3 非終結符號作為屬性計值函式94
5.4 符號表作為屬性95
5.5 一個微Pascal語言的屬性文法AG96
5.6 域和標識符種類98
5.6.1 標識符作用域文法99
5.6.2 標識符作用域例子的分析100
5.6.3 符號表的其他事項104
5.7 在遞歸下降分析中實現屬性105
5.8 LR分析器的屬性賦值106
5.9 實現一個符號表107
符號109
關鍵字109
習題109
第6章 語法制導的代碼生成111
6.1 引言111
6.2 常見的中間語言簡介111
6.2.1 逆波蘭表示112
6.2.2 四元式113
6.2.3 其他表示法114
6.3 賦值語句的翻譯114
6.4 布爾表達式的翻譯116
6.5 程式流程控制語句的翻譯122
6.5.1 常見控制結構的翻譯122
6.5.2 語句標號及GOTO語句的翻譯126
6.5.3 多分支語句的翻譯130
6.6 含數組元素的算術表達式及賦值語句的翻譯132
6.6.1 下標變數地址的計算133
6.6.2 含有下標變數的賦值語句的翻譯136
6.7 過程說明和過程調用的翻譯139
6.7.1 過程說明的翻譯139
6.7.2 實參和形參間的信息傳遞140
6.7.3 過程語句的翻譯141
6.7.4 關於形實結合的進一步討論142
6.8 說明語句的翻譯144
6.8.1 類型說明(變數及數組定義)語句的翻譯144
6.8.2 數據類型定義語句的翻譯147
習題150
第7章 符號表152
7.1 引言152
7.2 符號表的組織152
7.3 符號表結構153
7.3.1 線性符號表153
7.3.2 有序符號表154
7.3.3 散列表155
7.4 符號表的管理157
7.4.1 符號表的初始化157
7.4.2 符號表的查填157
7.4.3 符號表的刪除158
關鍵字158
習題158
第8章 運行時存儲空間的組織與管理161
8.1 引言161
8.2 語言相關概述161
8.2.1 過程161
8.2.2 名字的作用域和綁定162
8.3 存儲分配的策略163
8.3.1 靜態存儲分配策略164
8.3.2 棧式存儲分配策略166
8.3.3 堆式存儲分配策略170
8.4 FORTRAN語言的存儲分配173
關鍵字174
習題174
第9章 代碼最佳化180
9.1 概述180
9.2 局部最佳化181
9.2.1 基本塊的劃分181
9.2.2 基本塊的最佳化182
9.2.3 基本塊的DAG圖表示183
9.3 循環最佳化189
9.3.1 程式流圖的概念190
9.3.2 循環最佳化方法190
第10章 目標代碼生成194
10.1 概述194
10.2 一個簡單的計算機模型196
10.3 一個簡單的代碼生成器197
10.3.1 變數的待用信息及其算法198
10.3.2 代碼生成算法200
10.4 暫存器分配204
10.5 窺孔最佳化205
參考文獻208