內容簡介
書的封面 |
——SteveVinoski,《IEEE Internet Computing》專欄作家
《Erlang編程指南》是對Erlang語言的深入介紹。Erlang是任何必須並發、容錯和快速回響的環境的理想程式語言。隨著多核處理器及其針對並發的新的可擴展方式的發展,Erlang得到了廣泛的使用。通過本書,你將學會如何使用Erlang編寫複雜的並發程式,不管你是否有編程背景和經驗
本書由國際知名的Erlang社區領導者根據他們的培訓材料編寫而成。本書的重點集中在解釋Erlang的語法和語義,並且介紹了其模式匹配、規範列表、遞歸、調試、網路和並發性等內容。
《Erlang編程指南》可以幫助你:
•理解Erlang的強大功能及其包含的特殊功能。
•學習並發背後的概念以及Erlang處理並發的方式。
•編寫高效的Erlang程式並保持代碼整潔和良好的可讀性。
•探究Erlang如何滿足分散式系統的要求。
•輕鬆添加簡單的圖形用戶界面。
•學習Erlang的跟蹤機制以調試並發和分散式系統。
•使用內置的Mnesia資料庫和其他表存儲功能。
《Erlang編程指南》每章末尾都提供了練習題,並且由簡單的示例貫穿全書
作者簡介
Francesco Cesarini14年來一直向學生、開發人員、測試人員、項目和技術經理教授Erlang/OTP技術。他協助在愛爾蘭、美國和英國建立起了Erlang開發中心。Simon Thompson是一位肯特大學計算機實驗室的邏輯和計算學教授,在過去25年裡,他在那裡教授本科生和研究生的計算學課程。
目錄
序 1前言3
第1章引言 9
為什麼我應該使用Erlang9
Erlang語言的歷史及發展11
Erlang的特性12
Erlang和多核17
案例研究18
應該如何使用Erlang 21
第2章Erlang基礎 22
整數22
Erlang終端23
浮點數 23
基元25
布爾類型 27
元組 28
列表29
項元比較 34
變數36
複雜數據結構38
模式匹配40
函式44
模組46
練習50
第3章Erlang順序編程 52
條件評估 52
保護元57
內置函式60
遞歸 66
運行時錯誤75
處理錯誤77
模組庫84
調試器87
練習90
第4章並發編程 95
創建進程96
訊息傳遞98
接收訊息100
註冊進程107
逾時110
性能基準測試111
進程架構112
尾遞歸和記憶體泄漏113
面向並發程式設計的個案研究115
競爭條件、死鎖和飢餓進程116
進程管理器 118
練習119
第5章進程設計模式 121
客戶端/伺服器模型122
進程模式實例128
有限狀態機130
事件管理器和句柄134
練習141
第6章進程錯誤處理機制 143
進程連結和退出信號143
健壯性系統152
練習158
第7章記錄和宏 161
記錄162
宏168
練習172
第8章軟體升級 175
升級模組175
幕後178
升級過程184
.erlang檔案188
練習188
第9章更多數據類型和高級別構造 190
實踐中的函式式編程190
Funs和高階函式 191
列表解析198
二進制類型和序列化202
引用211
練習212
第10章ETS和Dets表 214
ETS表214
Dets表228
移動用戶資料庫實例231
練習242
第11章Erlang中的分散式編程 244
Erlang中的分散式系統244
Erlang中的分散式計算:基礎246
EPMD進程259
練習260
第12章OTP行為包 261
OTP行為包介紹 261
通用伺服器 264
監控進程274
套用278
版本發行的處理 284
其他行為包和更多閱讀資源 287
練習 288
第13章Mnesia介紹 290
何時使用Mnesia 290
配置Mnesia 292
事務處理 296
分區網路 301
擴展閱讀 302
練習 303
第14章圖形用戶界面編程wxErlang305
wxWidgets 305
wxErlang:wxWidgets綁定到Erlang 306
第一個實例:MicroBlog 309
MiniBlog實例 313
獲取和運行wxErlang 316
練習 317
第15章套接字編程319
用戶數據報協定 319
傳輸控制協定 323
inet模組 328
擴展閱讀 329
練習 330
第16章Erlang與其他程式語言接口 332
互動運作概況 332
與Java互動運作 334
C節點 339
Unix終端的Erlang調用:erl_call 343
連線埠程式 343
通信支持庫 347
內聯驅動程式和FFI 349
練習 350
第17章跟蹤內置函式,DBG跟蹤器以及匹配規則351
引言351
跟蹤內置函式352
用trace_pattern內置函式跟蹤調用358
dbg跟蹤器362
匹配規則:fun語法370
匹配規則:螺母和螺栓379
擴展閱讀387
練習388
第18章類型和文檔390
Erlang中的類型390
TypEr:成功類型和類型推斷394
使用edoc生成文檔397
練習405
第19章EUnit和測試驅動開發406
測試驅動開發 406
EUnit407
EUnit的基礎架構411
測試基於狀態的系統413
在Erlang中測試並發程式414
練習415
第20章風格和效率417
套用和模組417
進程和並發 422
格式約定425
編碼策略431
效率433
最後437
附錄使用Erlang 439