出版時(shí)間:2012-7 出版社:電子工業(yè)出版社 作者:Scott 頁(yè)數(shù):847 字?jǐn)?shù):1135000
Tag標(biāo)簽:無(wú)
前言
譯 者 序 Michael Scott的《程序設(shè)計(jì)語(yǔ)言——實(shí)踐之路》(Programming Language Pragmatics)是一本優(yōu)秀的教科書(shū)。在網(wǎng)絡(luò)時(shí)代計(jì)算技術(shù)飛速發(fā)展的背景下,各種創(chuàng)新的軟硬件設(shè)計(jì)理念及實(shí)踐如雨后春筍般層出不窮,如何將大量的信息組織起來(lái),并突出其核心內(nèi)容,是類(lèi)似教材的作者們所面臨的現(xiàn)實(shí)挑戰(zhàn)。而Scott這本教材最大的特點(diǎn)就在于,它緊緊抓住了處于計(jì)算機(jī)科學(xué)技術(shù)領(lǐng)域中心位置的主題——程序設(shè)計(jì)語(yǔ)言,為讀者深入地探討了程序設(shè)計(jì)語(yǔ)言及其實(shí)現(xiàn)的關(guān)鍵概念,同時(shí)將筆觸延伸到編譯技術(shù)、軟件系統(tǒng)甚至軟硬件體系結(jié)構(gòu)等諸多領(lǐng)域?! ”緯?shū)系統(tǒng)地介紹了與程序設(shè)計(jì)語(yǔ)言相關(guān)的各種基本概念,內(nèi)容涉及語(yǔ)言處理方面的具體細(xì)節(jié),以及各種語(yǔ)言范式。作者在討論各個(gè)主題時(shí),將對(duì)語(yǔ)言概念的描述與如何實(shí)現(xiàn)這些概念的具體說(shuō)明從整體上結(jié)合在了一起,講解清晰,并且給出了大量的實(shí)例。這樣,就使得讀者通過(guò)學(xué)習(xí)本書(shū),不僅能“知其然”——了解各種程序設(shè)計(jì)語(yǔ)言的實(shí)現(xiàn)中所做出的具體選擇,還能夠“知其所以然”——了解這些語(yǔ)言的設(shè)計(jì)者做出這些選擇背后的邏輯和取舍?! ”緯?shū)的編排方式也非常靈活,各章的內(nèi)容相對(duì)獨(dú)立,每章都有大量隨堂練習(xí)和課后習(xí)題,以幫助讀者鞏固學(xué)到的知識(shí),并啟發(fā)他們做進(jìn)一步的思考。隨書(shū)附帶的光盤(pán)上還包含了許多較深入的內(nèi)容。根據(jù)需要,這本教科書(shū)可以通過(guò)不同的方式組織起來(lái),用于側(cè)重點(diǎn)不同的教學(xué)課程,讀者自學(xué)時(shí)也可以根據(jù)自己的情況自由選讀?! ∽髡咴诒緯?shū)(第3版)中對(duì)內(nèi)容做了大量的更新,最明顯的就是增加了關(guān)于運(yùn)行時(shí)程序管理的全新的第15章,以及關(guān)于并發(fā)的第12章的很多改寫(xiě),增加了一些較新的主題。這一版本更新了大量的實(shí)例(例如用X86上的C代碼代替了Pascal),并且更多地采用了C#、Java 5、Python和Eiffel等現(xiàn)代語(yǔ)言的例子。作者對(duì)第3版的改進(jìn)還體現(xiàn)在許多細(xì)節(jié)方面,足以反映出作者之用心?! ”緯?shū)在翻譯的過(guò)程中,得到了博文視點(diǎn)總經(jīng)理郭立老師的支持與指導(dǎo),她對(duì)IT專(zhuān)業(yè)書(shū)籍翻譯的質(zhì)量非常重視,使我們對(duì)本書(shū)的翻譯不敢有絲毫的懈急,力求達(dá)到精益求精。感謝本書(shū)的策劃編輯劉皎,是她持續(xù)的鼓勵(lì)給予我們信心讓我們繼續(xù)下去。還要感謝那些為本書(shū)的翻譯做出貢獻(xiàn)的所有人,他們都是默默無(wú)聞的后臺(tái)工作者?! ≌\(chéng)然,限于譯者水平,書(shū)中難免含有一些錯(cuò)誤和理解不到位的地方,敬請(qǐng)讀者朋友批評(píng)指正?! ∽g者 2011年中秋節(jié)于北京
內(nèi)容概要
這是一本很有特色的計(jì)算機(jī)教材,其核心是討論程序設(shè)計(jì)語(yǔ)言的基本原理和技術(shù)。本書(shū)融合了傳統(tǒng)的程序設(shè)計(jì)語(yǔ)言教科書(shū)和編譯教科書(shū)的有關(guān)知識(shí),并增加了一些有關(guān)匯編層體系結(jié)構(gòu)的材料,以滿(mǎn)足沒(méi)學(xué)過(guò)計(jì)算機(jī)組織的學(xué)生們的需要。書(shū)中通過(guò)各種語(yǔ)言的例子,闡釋了程序設(shè)計(jì)語(yǔ)言的重要基礎(chǔ)概念,討論了各種概念之間的關(guān)系,解釋了語(yǔ)言中許多結(jié)構(gòu)的形成和發(fā)展過(guò)程,以及它們演化為今天這種形式的根源。書(shū)中還詳細(xì)討論了編譯器的工作方式和工作過(guò)程,說(shuō)明它們對(duì)源程序做了什么,以及為什么要那樣做。書(shū)的每章最后附有復(fù)習(xí)題和一些更具挑戰(zhàn)性的練習(xí)與探索。這些練習(xí)的特別價(jià)值在于引導(dǎo)學(xué)生進(jìn)一步深入理解各種語(yǔ)言和技術(shù)。本書(shū)第3版新增了關(guān)于運(yùn)行時(shí)程序管理的討論,對(duì)關(guān)于并發(fā)的一章做了重大的改寫(xiě),并更新了大量的實(shí)例。
這本教材在美國(guó)大學(xué)已使用了二十余年,目前被歐美許多重要大學(xué)用于“程序設(shè)計(jì)語(yǔ)言”或者“軟件系統(tǒng)”課程。
作者簡(jiǎn)介
作者:(美)Scott
書(shū)籍目錄
第1部分 基礎(chǔ)
第1章 引言
1.1 語(yǔ)言設(shè)計(jì)的藝術(shù)
1.2 程序設(shè)計(jì)語(yǔ)言的譜系
1.3 為什么要研究程序設(shè)計(jì)語(yǔ)言?
1.4 編譯和解釋
1.5 程序設(shè)計(jì)環(huán)境
1.6 編譯概覽
1.6.1 詞法和語(yǔ)法分析
1.6.2 語(yǔ)義分析和中間代碼生成
1.6.3 目標(biāo)代碼生成
1.6.4 代碼改進(jìn)
1.7 總結(jié)和注記
1.8 練習(xí)
1.9 探索
1.10 有關(guān)參考文獻(xiàn)
第2章 程序設(shè)計(jì)語(yǔ)言的語(yǔ)法
2.1 描述語(yǔ)法:正則表達(dá)式和上下文無(wú)關(guān)文法
2.1.1 單詞和正則表達(dá)式
2.1.2 上下文無(wú)關(guān)文法
2.1.3 推導(dǎo)和語(yǔ)法分析樹(shù)
2.2 掃描
2.2.1 生成一個(gè)有窮自動(dòng)機(jī)
2.2.2 掃描器代碼
2.2.3 表格驅(qū)動(dòng)的掃描
2.2.4 詞法錯(cuò)誤
2.2.5 編譯指示
2.3 語(yǔ)法分析
2.3.1 遞歸下降
2.3.2 表格驅(qū)動(dòng)的自上而下語(yǔ)法分析
2.3.3 自下而上的語(yǔ)法分析
2.3.4 語(yǔ)法錯(cuò)誤
2.4 理論基礎(chǔ)
2.4.1 有窮自動(dòng)機(jī) 13
2.4.2 下推自動(dòng)機(jī) 18
2.4.3 文法和語(yǔ)言類(lèi) 19
2.5 總結(jié)和注記
2.6 練習(xí)
2.7 探索
2.8 有關(guān)參考文獻(xiàn)
第3章 名字、作用域和約束
3.1 約束時(shí)間的概念
3.2 對(duì)象生存期和存儲(chǔ)管理
3.2.1 靜態(tài)分配
3.2.2 基于棧的分配
3.2.3 基于堆的分配
3.2.4 廢料收集
3.3 作用域規(guī)則
3.3.1 靜態(tài)作用域
3.3.2 嵌套子程序
3.3.3 聲明的順序
3.3.4 模塊
3.3.5 模塊類(lèi)型和類(lèi)
3.3.6 動(dòng)態(tài)作用域
3.4 作用域的實(shí)現(xiàn)
3.4.1 符號(hào)表
3.4.2 關(guān)聯(lián)表和中心引用表
3.5 作用域中名字的含義
3.5.1 別名
3.5.2 重載
3.5.3 多態(tài)性及相關(guān)概念
3.6 引用環(huán)境的約束
3.6.1 子程序閉包
3.6.2 一級(jí)值和非受限生存期
3.6.3 對(duì)象閉包
3.7 宏擴(kuò)展
3.8 分別編譯
3.8.1 C的分別編譯
3.8.2 包和自動(dòng)頭文件推理
3.8.3 模塊分層結(jié)構(gòu)
3.9 總結(jié)和注記
3.10 練習(xí)
3.11 探索
3.12 有關(guān)參考文獻(xiàn)
第4章 語(yǔ)義分析
4.1 語(yǔ)義分析器所扮演的角色
4.2 屬性文法
4.3 屬性求值
4.4 動(dòng)作例程
4.5 屬性的空間管理
4.5.1 自下而上求值
4.5.2 自上而下求值
4.6 語(yǔ)法樹(shù)的標(biāo)注
4.7 總結(jié)和注記
4.8 練習(xí)
4.9 探索
4.10 有關(guān)參考文獻(xiàn)
第5章 目標(biāo)機(jī)體系結(jié)構(gòu)
5.1 存儲(chǔ)器層次結(jié)構(gòu)
5.2 數(shù)據(jù)表示
5.2.1 整數(shù)算術(shù)
5.2.2 浮點(diǎn)數(shù)算術(shù)
5.3 指令集體系結(jié)構(gòu)
5.3.1 尋址模式
5.3.2 條件和分支
5.4 體系結(jié)構(gòu)和實(shí)現(xiàn)
5.4.1 微程序設(shè)計(jì)
5.4.2 微處理器
5.4.3 RISC
5.4.4 多線(xiàn)程和多核
5.4.5 兩個(gè)示例體系結(jié)構(gòu):x86和MIPS
5.5 為新型處理器做編譯
5.5.1 保持流水線(xiàn)滿(mǎn)
5.5.2 寄存器分配
5.6 總結(jié)和注記
5.7 練習(xí)
5.8 探索
5.9 有關(guān)參考文獻(xiàn)
第2部分 語(yǔ)言設(shè)計(jì)的核心問(wèn)題
第6章 控制流
6.1 表達(dá)式求值
6.1.1 優(yōu)先級(jí)和結(jié)合性
6.1.2 賦值
6.1.3 初始化
6.1.4 表達(dá)式中的順序問(wèn)題
6.1.5 短路求值
6.2 結(jié)構(gòu)化和非結(jié)構(gòu)化的流程
6.2.1 goto的結(jié)構(gòu)化替代品
6.2.2 繼續(xù)
6.3 順序執(zhí)行
6.4 選擇
6.4.1 短路條件
6.4.2 Case/Switch語(yǔ)句
6.5 迭代
6.5.1 枚舉控制的循環(huán)
6.5.2 組合循環(huán)
6.5.3 迭代器
6.5.4 lcon的生成器
6.5.5 邏輯控制的循環(huán)
6.6 遞歸
6.6.1 迭代和遞歸
6.6.2 應(yīng)用序和正則序求值
6.7 非確定性
6.8 總結(jié)和注記
6.9 練習(xí)
6.10 探索
6.11 有關(guān)參考文獻(xiàn)
第7章 數(shù)據(jù)類(lèi)型
7.1 類(lèi)型系統(tǒng)
7.1.1 類(lèi)型檢查
7.1.2 多態(tài)性
7.1.3 “類(lèi)型”的含義
7.1.4 類(lèi)型的分類(lèi)
7.1.5 正交性
7.2 類(lèi)型檢查
7.2.1 類(lèi)型等價(jià)
7.2.2 類(lèi)型相容性
7.2.3 類(lèi)型推理
7.2.4 ML類(lèi)型系統(tǒng)
7.3 記錄(結(jié)構(gòu))與變體(聯(lián)合)
7.3.1 語(yǔ)法和運(yùn)算
7.3.2 存儲(chǔ)布局及其影響
7.33 with語(yǔ)句
7.3.4 變體記錄(聯(lián)合)
7.4 數(shù)組
7.4.1 語(yǔ)法和操作
7.4.2 維數(shù)、上下界和分配
7.4.3 內(nèi)存布局
7.5 字符串
7.6 集合
7.7 指針和遞歸類(lèi)型
7.7.1 語(yǔ)法和操作
7.7.2 懸空引用
7.7.3 廢料收集
7.8 表
7.9 文件和輸入/輸出
7.9.1 交互式I/O
7.9.2 基于文件的I/O
7.9.3 正文I/O
7.10 相等檢測(cè)和賦值
7.11 總結(jié)和注記
7.12 練習(xí)
7.13 探索
7.14 有關(guān)參考文獻(xiàn)
第8章 子程序和控制抽象
8.1 回顧棧的布局
8.2 調(diào)用序列
8.2.1 區(qū)頭向量
8.2.2 案例研究:在MIPS上實(shí)現(xiàn)C,在x86上實(shí)現(xiàn)Pascal
8.2.3 寄存器窗口
8.2.4 內(nèi)聯(lián)展開(kāi)
8.3 參數(shù)傳遞
8.3.1 參數(shù)模式
8.3.2 名字調(diào)用
8.3.3 特殊目的的參數(shù)
8.3.4 函數(shù)返回
8.4 泛型子程序和模塊
8.4.1 不同的實(shí)現(xiàn)方法
8.4.2 泛型參數(shù)的約束條件
8.4.3 隱式實(shí)例化
8.4.4 C++、Java和C#中的泛型
8.5 異常處理
8.5.1 異常的定義
8.5.2 異常的傳播
8.5.3 異常的實(shí)現(xiàn)
8.6 協(xié)作程序
8.6.1 棧分配
8.6.2 轉(zhuǎn)移
8.6.3 迭代器的實(shí)現(xiàn)
8.6.4 離散事件模擬
8.7 事件
8.7.1 順序處理程序
8.7.2 基于線(xiàn)程的處理程序
4.8 總結(jié)和注記
8.9 練習(xí)
8.10 探索
8.11 有關(guān)參考文獻(xiàn)
第9章 數(shù)據(jù)抽象和面向?qū)ο?br />9.1 面向?qū)ο蟪绦蛟O(shè)計(jì)
9.2 封裝和繼承
9.2.1 模塊
9.2.2 類(lèi)
9.2.3 嵌套(內(nèi)層類(lèi))
9.2.4 類(lèi)型擴(kuò)展
9.2.5 不使用繼承擴(kuò)展
9.3 初始化和終結(jié)處理
9.3.1 構(gòu)造函數(shù)的選擇
9.3.2 引用和值
9.3.3 執(zhí)行順序
9.3.4 廢料收集
9.4 動(dòng)態(tài)方法約束
9.4.1 虛方法和非虛方法
9.4.2 抽象類(lèi)
9.4.3 成員查找
9.4.4 多態(tài)性
9.4.5 對(duì)象閉包
9.5 多重繼承
9.5.1 語(yǔ)義歧義性
9.5.2 復(fù)本式繼承
9.5.3 共享繼承
9.5.4 混入式繼承
9.6 重溫面向?qū)ο蟮某绦蛟O(shè)計(jì)
9.6.1 Smalltalk的對(duì)象模型
9.7 總結(jié)和注記
9.8 練習(xí)
9.9 探索
9.10 有關(guān)參考文獻(xiàn)
第3部分 其他程序設(shè)計(jì)模型
第10章 函數(shù)式語(yǔ)言
10.1 歷史淵源
10.2 函數(shù)式程序設(shè)計(jì)的概念
10.3 Scheme回顧/簡(jiǎn)介
10.3.1 約束
10.3.2 表和數(shù)
10.3.3 相等檢測(cè)和檢索
10.3.4 控制流和賦值
10.3.5 程序作為表
10.3.6 一個(gè)擴(kuò)展的實(shí)例:DFA模擬
10.4 重溫求值順序
10.4.1 嚴(yán)格求值和惰性求值
10.4.2 I/O:流和單體
10.5 高階函數(shù)
10.6 理論基礎(chǔ)
10.6.1 lambda 演算
10.6.2 控制流
10.6.3 結(jié)構(gòu)
10.7 函數(shù)式程序設(shè)計(jì)展望
10.8 總結(jié)和注記
10.9 練習(xí)
10.10 探索
10.11 有關(guān)參考文獻(xiàn)
第11章 邏輯式語(yǔ)言
11.1 邏輯式程序設(shè)計(jì)的概念
11.2 Prolog
11.2.1 歸結(jié)和合一
11.2.2 表
11.2.3 算術(shù)
11.2.4 搜索/執(zhí)行順序
11.2.5 一個(gè)較大的實(shí)例:九宮棋
11.2.6 命令式控制流
11.3 理論基礎(chǔ)
11.3.1 子句形式
11.3.2 局限性
11.3.3 Skolem
11.4 邏輯式程序設(shè)計(jì)的展望
11.4.1 沒(méi)有覆蓋的邏輯部分
11.4.2 執(zhí)行順序
11.4.3 否定和“閉世界”假設(shè)
11.5 總結(jié)和注記
11.6 練習(xí)
11.7 探索
11.8 有關(guān)參考文獻(xiàn)
第12章 并發(fā)
12.1 基礎(chǔ)和動(dòng)力
12.1.1 多線(xiàn)程程序的各種情況
12.1.2 多處理器體系結(jié)構(gòu)
12.2 并發(fā)程序設(shè)計(jì)基礎(chǔ)
12.2.1 通信和同步
12.2.2 語(yǔ)言和庫(kù)
12.2.3 創(chuàng)建線(xiàn)程的語(yǔ)法
12.2.4 線(xiàn)程的實(shí)現(xiàn)
12.3 實(shí)現(xiàn)
12.3.1 忙等待同步
12.3.2 非阻塞算法
12.3.3 內(nèi)存一致模型
12.3.4 調(diào)度器的實(shí)現(xiàn)
12.3.5 信號(hào)量
12.4 語(yǔ)言級(jí)機(jī)制
12.4.1 管程
12.4.2 條件臨界區(qū)域
12.4.3 Java中的同步
12.4.4 事務(wù)存儲(chǔ)
12.4.5 隱式同步
12.5 消息傳遞
12.5.1 通信對(duì)方的命名
12.5.2 發(fā)送
12.5.3 接收
12.5.4 遠(yuǎn)程過(guò)程調(diào)用
12.6 總結(jié)和注記
12.7 練習(xí)
12.8 探索
12.9 有關(guān)參考文獻(xiàn)
第13章 腳本語(yǔ)言
13.1 什么是腳本語(yǔ)言?
13.1.1 公共特性
13.2 問(wèn)題領(lǐng)域
13.2.1 外殼(命令)語(yǔ)言
13.2.2 文字處理和報(bào)表生成
13.2.3 數(shù)學(xué)和統(tǒng)計(jì)
13.2.4 “粘結(jié)”語(yǔ)言和通用腳本
13.2.5 擴(kuò)充語(yǔ)言
13.3 萬(wàn)維網(wǎng)腳本
13.3.1 CGI腳本
13.3.2 嵌入式服務(wù)器端腳本
13.3.3 客戶(hù)端腳本
13.3.4 Java小程序
13.3.5 XSLT
13.4 新特征
13.4.1 名字和作用域
13.4.2 串和模式匹配
13.4.3 數(shù)據(jù)類(lèi)型
13.4.4 面向?qū)ο?br />13.5 總結(jié)和注記
13.6 練習(xí)
13.7 探索
13.8 有關(guān)參考文獻(xiàn)
第4部分 對(duì)實(shí)現(xiàn)的近距離考查
第14章 構(gòu)造可運(yùn)行的程序
14.1 后端編譯器結(jié)構(gòu)
14.1.1 一種可行的多階段組織
14.1.2 階段和遍
14.2 中間形式
14.2.1 Diana
14.2.2 gcc中間形式
14.2.3 基于棧的中間形式
14.3 代碼生成
14.3.1 一個(gè)屬性文法實(shí)例
14.3.2 寄存器分配
14.4 地址空間組織
14.5 匯編
14.5.1 指令發(fā)射
14.5.2 為名字指定地址
14.6 連接
14.6.1 重定位和名字解析
14.6.2 類(lèi)型檢查
14.7 動(dòng)態(tài)連接
14.7.1 與定位無(wú)關(guān)的代碼
14.7.2 完全動(dòng)態(tài)連接(惰性連接)
14.8 總結(jié)和注記
14.9 練習(xí)
14.10 探索
14.11 有關(guān)參考文獻(xiàn)
第15章 運(yùn)行時(shí)程序管理
15.1 虛擬機(jī)
15.1.1 Java虛擬機(jī)
15.1.2 公共語(yǔ)言基礎(chǔ)架構(gòu)
15.2 機(jī)器碼的遲綁定
15.2.1 即時(shí)和動(dòng)態(tài)編譯
15.2.2 二進(jìn)制翻譯
15.2.3 二進(jìn)制重寫(xiě)
15.2.4 移動(dòng)代碼和沙箱
15.3 審查/自反
15.3.1 自反
15.3.2 符號(hào)調(diào)試
15.3.3 性能分析
15.4 總結(jié)和注記
15.5 練習(xí)
15.6 探索
15.7 有關(guān)參考文獻(xiàn)
第16章 代碼改進(jìn)
16.1 代碼改進(jìn)的階段
16.2 窺孔優(yōu)化
16.3 基本塊內(nèi)的冗余刪除
16.3.1 一直使用的實(shí)例
16.3.2 值編號(hào)
16.4 全局冗余刪除和數(shù)據(jù)流分析
16.4.1 SSA(靜態(tài)單賦值)形式和全局值編號(hào)
16.4.2 全局公共子表達(dá)式刪除
16.5 循環(huán)改進(jìn)I
16.5.1 循環(huán)不變量
16.5.2 歸納變量
16.6 指令調(diào)度
16.7 循環(huán)改進(jìn)II
16.7.1 循環(huán)展開(kāi)和軟件流水線(xiàn)
16.7.2 循環(huán)重排
16.8 寄存器分配
16.9 總結(jié)和注記
16.10 練習(xí)
16.11 探索
16.12 有關(guān)參考文獻(xiàn)
附錄A 本書(shū)中提到的程序設(shè)計(jì)語(yǔ)言
附錄B 語(yǔ)言設(shè)計(jì)和語(yǔ)言實(shí)現(xiàn)
附錄C 編號(hào)示表
章節(jié)摘錄
版權(quán)頁(yè): 插圖: 超級(jí)計(jì)算機(jī) 超級(jí)計(jì)算雖然與計(jì)算機(jī)行業(yè)的其他領(lǐng)域相比在財(cái)務(wù)上相形見(jiàn)絀,但是它在計(jì)算機(jī)技術(shù)的發(fā)展以及人類(lèi)知識(shí)的進(jìn)步方面,始終扮演著遠(yuǎn)超其實(shí)際投入的角色。超級(jí)計(jì)算機(jī)隨著時(shí)間的推移已經(jīng)發(fā)生了巨大的變化,并且仍然繼續(xù)以非??斓乃俣劝l(fā)展著。不過(guò),它們始終都是并行的機(jī)器。 由于緩存一致性的復(fù)雜性,很難構(gòu)造出大型的共享存儲(chǔ)機(jī)器。SGI銷(xiāo)售擁有512個(gè)處理器(1024個(gè)核)的機(jī)器。Cray構(gòu)造出了更大的共享存儲(chǔ)機(jī)器,但是并不能緩存遠(yuǎn)程的位置。然而,傳統(tǒng)的向量機(jī)器在很大程度上不僅被大型多處理器機(jī)器替代,而且也被相當(dāng)數(shù)量的較小多處理器或非常多的連接到高性能網(wǎng)絡(luò)上的商用(主流)單處理器機(jī)器替代。隨著網(wǎng)絡(luò)技術(shù)“向下流淌”到更廣泛的市場(chǎng)中,這些機(jī)器又被由商用處理器(通常是多核的)和商用網(wǎng)絡(luò)(吉比特以太網(wǎng)或無(wú)限帶寬)組成的集群取代。截止到2008年,集群已經(jīng)在從大量的服務(wù)器場(chǎng)到除極快的超級(jí)計(jì)算機(jī)站點(diǎn)之外的所有領(lǐng)域中都處于優(yōu)勢(shì)地位。Google、Amazon或eBay等大規(guī)模在線(xiàn)服務(wù)通常都是由成百甚至上千個(gè)處理器支持的(以Google為例,這一數(shù)字也許達(dá)到數(shù)十萬(wàn))。 如今最快的機(jī)器是由特殊的高密度、低功能多核芯片構(gòu)成的。IBM的BlueGene/P系統(tǒng)使用了4核、16瓦PowerPC處理器。IBM最近完成的RoadRunner系統(tǒng)(2008年6月時(shí)世界上最快的系統(tǒng))使用的是90瓦PowerXCell處理器,與Sony Playstation 3中使用的處理器類(lèi)似。每個(gè)Cell處理器都包含一個(gè)雙線(xiàn)程PowerPC和8個(gè)小向量核。根據(jù)當(dāng)前的趨勢(shì),看起來(lái)未來(lái)的高端和商用機(jī)器,都將變得越來(lái)越密集和多樣化。 從程序設(shè)計(jì)語(yǔ)言的角度來(lái)看,超級(jí)計(jì)算的特殊挑戰(zhàn)在于適應(yīng)不統(tǒng)一的訪(fǎng)問(wèn)時(shí)間和(在大多數(shù)情況下)缺少硬件對(duì)跨整個(gè)機(jī)器共享訪(fǎng)問(wèn)的支持。如今的超級(jí)計(jì)算機(jī)在編程時(shí),主要是使用消息傳遞庫(kù)(特別是MPI)和局部及遠(yuǎn)程存儲(chǔ)訪(fǎng)問(wèn)之間存在顯著區(qū)別的語(yǔ)言和庫(kù)來(lái)進(jìn)行的。
編輯推薦
《程序設(shè)計(jì)語(yǔ)言:實(shí)踐之路(第3版)》在美國(guó)大學(xué)已使用了二十余年,目前被歐美許多重要大學(xué)用于“程序設(shè)計(jì)語(yǔ)言”或者“軟件系統(tǒng)”課程?!冻绦蛟O(shè)計(jì)語(yǔ)言:實(shí)踐之路(第3版)》適合高年級(jí)本科生或者一年級(jí)研究生使用,許多內(nèi)容對(duì)專(zhuān)業(yè)程序員也很有價(jià)值。
名人推薦
對(duì)于語(yǔ)言設(shè)計(jì)和實(shí)現(xiàn)而言,本書(shū)是一本出色的入門(mén)書(shū)。它不僅闡述了我們使用的那些語(yǔ)言背后的理論基礎(chǔ),還闡明了計(jì)算機(jī)體系結(jié)構(gòu)的發(fā)展是如何引導(dǎo)這些理論的,以及這些理論將如何繼續(xù)發(fā)展,以面對(duì)利用多核硬件的挑戰(zhàn)。 ——Tim Harris,微軟研究院
圖書(shū)封面
圖書(shū)標(biāo)簽Tags
無(wú)
評(píng)論、評(píng)分、閱讀與下載
250萬(wàn)本中文圖書(shū)簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書(shū)網(wǎng) 手機(jī)版