編程原本
[美] 亞歷山大·斯特潘諾夫(Alexander Stepanov),[美]保羅·麥克瓊斯(Paul McJones)
買這商品的人也買了...
相關主題
商品描述
本書將嚴格的數學定義、公理化和演繹方法應用於程序設計,討論程序與保證它們正確工作的抽象數學理論之間的聯系。本書把理論的規程、基於這些規程寫出的算法,以及描述算法性質的引理和定理一起呈現給讀者,以幫助讀者將復雜系統分解為一些具有特定行為的組件。
本書適合軟件開發人員和需要進行程序設計的科學家及工程師閱讀,也可供高等院校電腦及相關專業的師生參考。
作者簡介
Alexander Stepanov 於1967 到1972 年間在國立莫斯科大學學習數學,從1972 年開始在蘇聯從事程序設計工作,1977 年移民美國後繼續在這一領域工作。他編寫過操作系統、程序設計工具、編譯器和各種程序庫。他在程序設計基礎方面的工作先後得到GE、Brooklyn Polytechnic、AT&T、HP、SGI和Adobe 的支持。他在1995 年因C++ 標準模板庫的設計獲Dr. Dobb'sJournal 的程序設計傑出貢獻獎。
Paul McJones 於1967 到1971 年間在加州大學伯克利分校學習工程數學,1967 年進入程序設計領域。他涉足的領域包括操作系統、程序設計環境、事務處理系統,以及企業和客戶應用系統等。他先後在加州大學、IBM、Xerox、Tandem、DEC 和Adobe 工作。1982 年他與合作者一起因論文“The Recovery Manager of the System R Database Manager”獲得ACM 程序設計系統和語言論文獎。
目錄大綱
第 1 章基礎 1
1.1 理念範疇:實體、類別和類屬 1
1.2 值 2
1.3 對象 4
1.4 過程 6
1.5 規範類型 7
1.6 規範過程 9
1.7 概念 11
1.8 總結 16
第 2 章變換及其軌道 17
2.1 變換 17
2.2 軌道 21
2.3 碰撞點 23
2.4 軌道規模的度量 30
2.5 動作 31
2.6 總結 32
第3 章可結合運算 33
3.1 可結合性 33
3.2 計算乘冪 35
3.3 程序變換 37
3.4 處理特殊情況的過程 42
3.5 參數化算法 46
3.6 線性遞歸 47
3.7 累積過程 50
3.8 總結 51
第4 章線性序 52
4.1 關系的分類 52
4.2 全序和弱序 55
4.3 按序選取 56
4.4 自然全序 66
4.5 派生過程組 67
4.6 按序選取過程的擴展 68
4.7 總結 68
第5 章有序代數結構 69
5.1 基本代數結構 69
5.2 有序代數結構 75
5.3 求餘 76
5.4 最大公因子 81
5.5 廣義gcd 84
5.6 Stein gcd 87
5.7 商 87
5.8 負量的商和餘數 89
5.9 概念及其模型 92
5.10 電腦整數類型 94
5.11 總結 95
第6 章迭代器 96
6.1 可讀性 96
6.2 迭代器 97
6.3 範圍 99
6.4 可讀範圍 103
6.5 遞增的範圍 112
6.6 前向迭代器 115
6.7 索引迭代器 120
6.8 雙向迭代器 120
6.9 隨機訪問迭代器 122
6.10 總結 124
第7 章坐標結構 125
7.1 二叉坐標 125
7.2 雙向二叉坐標 129
7.3 坐標結構 135
7.4 同構、等價和有序 136
7.5 總結 144
第8 章後繼可變的坐標 145
8.1 鏈接迭代器 145
8.2 鏈接重整 146
8.3 鏈接重整的應用 153
8.4 鏈接的二叉坐標 157
8.5 總結 163
第9 章拷貝 164
9.1 可寫性 164
9.2 基於位置的拷貝 166
9.3 基於謂詞的拷貝 174
9.4 範圍的交換 182
9.5 總結 186
第 10 章重整 187
10.1 置換 187
10.2 重整 190
10.3 反轉算法 192
10.4 輪換算法 196
10.5 算法選擇 206
10.6 總結 210
第 11 章劃分和歸並 211
11.1 劃分 213
11.2 平衡的歸約 218
11.3 歸並 223
11.4 總結 230
第 12 章復合對象 231
12.1 簡單復合對象 231
12.2 動態序列 240
12.3 基礎類型 246
12.4 總結 249
跋 250
附錄A 數學表示 254
附錄B 程序設計語言 256
B.1 語言定義 256
B.2 宏和特徵結構 264
參考文獻 267
索引 271