注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術(shù)計算機/網(wǎng)絡軟件與程序設計其他編程語言/工具Erlang程序設計

Erlang程序設計

Erlang程序設計

定 價:¥79.00

作 者: (瑞典)阿姆斯特朗 著,趙東偉,金尹 譯
出版社: 人民郵電出版社
叢編項: 圖靈程序設計叢書
標 簽: 程序設計

購買這本書可以去


ISBN: 9787115188694 出版時間: 2008-12-01 包裝: 平裝
開本: 16開 頁數(shù): 427 字數(shù):  

內(nèi)容簡介

  本書是講述下一代編程語言Erlang 的權(quán)威著作,主要涵蓋順序型編程、異常處理、編譯和運行代碼、并發(fā)編程、并發(fā)編程中的錯誤處理、分布式編程、多核編程等內(nèi)容。本書將幫助讀者在消息傳遞的基礎上構(gòu)建分布式的并發(fā)系統(tǒng),免去鎖與互斥技術(shù)的羈絆,使程序在多核CPU 上高效運行。本書講述的各種設計方法和行為將成為設計容錯與分布式系統(tǒng)中的利器。

作者簡介

  Joe Armstrong,Erlang最初的設計者和實現(xiàn)者,也是Erlang OTP系統(tǒng)項目的首席架構(gòu)師。他擁有瑞典皇家理工學院博士學位,是容錯系統(tǒng)開發(fā)領(lǐng)域的世界級專家。此外,他還在開發(fā)旨在替代XML的標記語言ML9?,F(xiàn)任職于愛立信公司。

圖書目錄

第1章 引言 
 1.1 路線圖 
 1.2 正式起航 
 1.3 致謝 
第2章 入門 
 2.1 概覽 
  2.1.1 階段1:茫然無緒 
  2.1.2 階段2:初窺門徑 
  2.1.3 階段2.5:觀其大略,不求甚解 
  2.1.4 階段3:運用自如 
  2.1.5 重中之重 
 2.2 Erlang安裝 
  2.2.1 二進制發(fā)布版 
  2.2.2 從源代碼創(chuàng)建Erlang 
  2.2.3 使用CEAN 
 2.3 本書代碼 
 2.4 啟動shell 
 2.5 簡單的整數(shù)運算 
 2.6 變量 
  2.6.1 變量不變 
  2.6.2 模式匹配 
  2.6.3 單一賦值為何有益于編寫質(zhì)量更高的代碼 
 2.7 浮點數(shù) 
 2.8 原子 
 2.9 元組 
  2.9.1 創(chuàng)建元組 
  2.9.2 從元組中提取字段值 
 2.10 列表 
  2.10.1 術(shù)語 
  2.10.2 定義列表 
  2.10.3 從列表中提取元素 
 2.11 字符串 
 2.12 再論模式匹配 
第3章 順序型編程 
 3.1 模塊 
 3.2 購物系統(tǒng)——進階篇 
 3.3 同名不同目的函數(shù) 
 3.4 fun 
  3.4.1 以fun為參數(shù)的函數(shù) 
  3.4.2 返回fun的函數(shù) 
  3.4.3 定義你自己的抽象流程控制 
 3.5 簡單的列表處理 
 3.6 列表解析 
  3.6.1 快速排序 
  3.6.2 畢達哥拉斯三元組 
  3.6.3 變位詞 
 3.7 算術(shù)表達式 
 3.8 斷言 
  3.8.1 斷言序列 
  3.8.2 斷言樣例 
  3.8.3 true斷言的使用 
  3.8.4 過時的斷言函數(shù) 
 3.9 記錄 
  3.9.1 創(chuàng)建和更新記錄 
  3.9.2 從記錄中提取字段值 
  3.9.3 在函數(shù)中對記錄進行模式匹配 
  3.9.4 記錄只是元組的偽裝 
 3.10 case/if表達式 
  3.10.1 case表達式 
  3.10.2 if表達式 
 3.11 以自然順序創(chuàng)建列表 
 3.12 累加器 
第4章 異?!?br /> 4.1 異常 
 4.2 拋出異?!?br /> 4.3 try...catch 
  4.3.1 縮減版本 
  4.3.2 使用try...catch的編程慣例 
 4.4 catch 
 4.5 改進錯誤信息 
 4.6 try...catch的編程風格 
  4.6.1 經(jīng)常會返回錯誤的程序 
  4.6.2 出錯幾率比較小的程序 
 4.7 捕獲所有可能的異?!?br /> 4.8 新老兩種異常處理風格 
 4.9 棧跟蹤 
第5章 順序型編程進階 
 5.1 BIF 
 5.2 二進制數(shù)據(jù) 
 5.3 比特語法 
  5.3.1 bit色彩的封包與解包 
  5.3.2 比特語法表達式 
  5.3.3 高級比特語法樣例 
 5.4 小問題集錦 
  5.4.1 apply 
  5.4.2 屬性 
  5.4.3 塊表達式 
  5.4.4 布爾類型 
  5.4.5 布爾表達式 
  5.4.6 字符集 
  5.4.7 注釋 
  5.4.8 epp 
  5.4.9 轉(zhuǎn)義符 
  5.4.10 表達式和表達式序列 
  5.4.11 函數(shù)引用 
  5.4.12 包含文件 
  5.4.13 列表操作符++和-- 
  5.4.14 宏 
  5.4.15 在模式中使用匹配操作符 
  5.4.16 數(shù)值類型 
  5.4.17 操作符優(yōu)先級 
  5.4.18 進程字典 
  5.4.19 引用 
  5.4.20 短路布爾表達式 
  5.4.21 比較表達式 
  5.4.22 下劃線變量 
第6章 編譯并運行程序 
 6.1 開啟和停止Erlang shell 
 6.2 配置開發(fā)環(huán)境  
  6.2.1 為文件加載器設定搜索路徑 
  6.2.2 在系統(tǒng)啟動時批量執(zhí)行命令 
 6.3 運行程序的幾種不同方法 
  6.3.1 在Erlang shell中編譯運行 
  6.3.2 在命令提示符下編譯運行 
  6.3.3 把程序當作escript腳本運行 
  6.3.4 用命令行參數(shù)編程 
 6.4 使用makefile進行自動編譯 
  6.4.1 makefile模板 
  6.4.2 定制makefile模板 
 6.5 在Erlang shell中的命令編輯 
 6.6 解決系統(tǒng)死鎖 
 6.7 如何應對故障 
  6.7.1 未定義/遺失代碼 
  6.7.2 makefile不能工作 
  6.7.3 shell沒有響應 
 6.8 獲取幫助 
 6.9 調(diào)試環(huán)境 
 6.10 崩潰轉(zhuǎn)儲 
第7章 并發(fā) 
第8章 并發(fā)編程 
 8.1 并發(fā)原語 
 8.2 一個簡單的例子 
 8.3 客戶/服務器介紹 
 8.4 創(chuàng)建一個進程需要花費多少時間 
 8.5 帶超時的receive 
  8.5.1 只有超時的receive 
  8.5.2 超時時間為0的receive 
  8.5.3 使用一個無限等待超時進行接收 
  8.5.4 實現(xiàn)一個計時器 
 8.6 選擇性接收 
 8.7 注冊進程 
 8.8 如何編寫一個并發(fā)程序 
 8.9 尾遞歸技術(shù) 
 8.10 使用MFA啟動進程 
 8.11 習題 
第9章 并發(fā)編程中的錯誤處理 
 9.1 鏈接進程 
 9.2 on_exit處理程序 
 9.3 遠程錯誤處理 
 9.4 錯誤處理的細節(jié) 
  9.4.1 捕獲退出的編程模式 
  9.4.2 捕獲退出信號(進階篇) 
 9.5 錯誤處理原語 
 9.6 鏈接進程集 
 9.7 監(jiān)視器 
 9.8 存活進程 
第10章 分布式編程 
 10.1 名字服務 
  10.1.1 第一步:一個簡單的名字服務 
  10.1.2 第二步:在同一臺機器上,客戶端運行于一個節(jié)點而服務器運行于第二個節(jié)點 
  10.1.3 第三步:讓客戶機和服務器運行于同一個局域網(wǎng)內(nèi)的不同機器上 
  10.1.4 第四步:在因特網(wǎng)上的不同主機上分別運行客戶機和服務器 
 10.2 分布式原語 
 10.3 分布式編程中使用的庫 
 10.4 有cookie保護的系統(tǒng) 
 10.5 基于套接字的分布式模式 
  10.5.1 lib_chan 
  10.5.2 服務器代碼 
第11章 IRC Lite 
 11.1 消息序列圖 
 11.2 用戶界面 
 11.3 客戶端程序 
 11.4 服務器端組件 
  11.4.1 聊天控制器 
  11.4.2 聊天服務器 
  11.4.3 群組管理器 
 11.5 運行程序 
 11.6 聊天程序源代碼 
  11.6.1 聊天客戶端 
  11.6.2 Lib_chan配置 
  11.6.3 聊天控制器 
  11.6.4 聊天服務器 
  11.6.5 聊天群組 
  11.6.6 輸入輸出窗口 
 11.7 習題 
第12章 接口技術(shù) 
 12.1 端口 
 12.2 為一個外部C程序添加接口 
  12.2.1 C程序 
  12.2.2 Erlang程序 
 12.3 open_port 
 12.4 內(nèi)聯(lián)驅(qū)動 
 12.5 注意 
第13章 對文件編程 
 13.1 庫的組織結(jié)構(gòu) 
 13.2 讀取文件的不同方法 
  13.2.1 從文件中讀取所有Erlang數(shù)據(jù)項 
  13.2.2 從文件的數(shù)據(jù)項中一次讀取一項 
  13.2.3 從文件中一次讀取一行數(shù)據(jù) 
  13.2.4 將整個文件的內(nèi)容讀入到一個二進制數(shù)據(jù)中 
  13.2.5 隨機讀取一個文件 
  13.2.6 讀取ID3標記 
 13.3 寫入文件的不同方法 
  13.3.1 向一個文件中寫入一串Erlang數(shù)據(jù)項 
  13.3.2 向文件中寫入一行 
  13.3.3 一步操作寫入整個文件 
  13.3.4 在隨機訪問模式下寫入文件 
 13.4 目錄操作 
 13.5 查詢文件的屬性 
 13.6 復制和刪除文件 
 13.7 小知識 
 13.8 一個搜索小程序 
第14章 套接字編程 
 14.1 使用TCP 
  14.1.1 從服務器上獲取數(shù)據(jù) 
  14.1.2 一個簡單的TCP服務器 
  14.1.3 改進服務器 
  14.1.4 注意 
 14.2 控制邏輯 
  14.2.1 主動型消息接收(非阻塞) 
  14.2.2 被動型消息接收(阻塞) 
  14.2.3 混合型模式(半阻塞) 
 14.3 連接從何而來 
 14.4 套接字的出錯處理 
 14.5 UDP 
  14.5.1 最簡單的UDP服務器和客戶機 
  14.5.2 一個計算階乘UDP的服務器 
  14.5.3 關(guān)于UDP協(xié)議的其他注意事項 
 14.6 向多臺機器廣播消息 
 14.7 SHOUTcast服務器 
  14.7.1 SHOUTcast協(xié)議 
  14.7.2 SHOUTcast服務器的工作機制 
  14.7.3 SHOUTcast服務器的偽代碼 
  14.7.4 運行SHOUTcast服務器 
 14.8 進一步深入 
第15章 ETS和DETS:大量數(shù)據(jù)的存儲機制 
 15.1 表的基本操作 
 15.2 表的類型 
 15.3 ETS表的效率考慮 
 15.4 創(chuàng)建ETS表 
 15.5 ETS程序示例 
  15.5.1 三字索引迭代器 
  15.5.2 構(gòu)造表 
  15.5.3 構(gòu)造表有多快 
  15.5.4 訪問表有多快 
  15.5.5 勝出的是…… 
 15.6 DETS 
 15.7 我們沒有提及的部分 
 15.8 代碼清單 
第16章 OTP概述 
 16.1 通用服務器程序的進化路線 
  16.1.1 server 1:原始服務器程序 
  16.1.2 server 2:支持事務的服務器程序 
  16.1.3 server 3:支持熱代碼替換的服務器程序 
  16.1.4 server 4:同時支持事務和熱代碼替換 
  16.1.5 server 5:壓軸好戲 
 16.2 gen_server起步 
  16.2.1 第一步:確定回調(diào)模塊的名稱 
  16.2.2 第二步:寫接口函數(shù) 
  16.2.3 第三步:編寫回調(diào)函數(shù) 
 16.3 gen_server回調(diào)的結(jié)構(gòu) 
  16.3.1 啟動服務器程序時發(fā)生了什么 
  16.3.2 調(diào)用服務器程序時發(fā)生了什么 
  16.3.3 調(diào)用和通知 
  16.3.4 發(fā)給服務器的原生消息 
  16.3.5 Hasta la Vista, Baby(服務器的終止) 
  16.3.6 熱代碼替換 
 16.4 代碼和模板 
  16.4.1 gen_server模板 
  16.4.2 my_bank 
 16.5 進一步深入 
第17章 Mnesia:Erlang數(shù)據(jù)庫 
 17.1 數(shù)據(jù)庫查詢 
  17.1.1 選取表中所有的數(shù)據(jù) 
  17.1.2 選取表中的數(shù)據(jù) 
  17.1.3 按條件選取表中的數(shù)據(jù) 
  17.1.4 從兩個表選取數(shù)據(jù)(關(guān)聯(lián)查詢) 
 17.2 增刪表中的數(shù)據(jù) 
  17.2.1 增加一行 
  17.2.2 刪除一行 
 17.3 Mnesia事務 
  17.3.1 取消一個事務 
  17.3.2 加載測試數(shù)據(jù) 
  17.3.3 do()函數(shù) 
 17.4 在表中保存復雜數(shù)據(jù) 
  17.5 表的類型和位置 
  17.5.1 創(chuàng)建表 
  17.5.2 表屬性的常見組合 
  17.5.3 表的行為 
 17.6 創(chuàng)建和初始化數(shù)據(jù)庫 
 17.7 表查看器 
 17.8 進一步深入 
 17.9 代碼清單 
第18章 構(gòu)造基于OTP的系統(tǒng) 
 18.1 通用的事件處理 
 18.2 錯誤日志 
  18.2.1 記錄一個錯誤 
  18.2.2 配置錯誤日志 
  18.2.3 分析錯誤 
 18.3 警報管理 
 18.4 應用服務 
  18.4.1 素數(shù)服務 
  18.4.2 面積服務 
 18.5 監(jiān)控樹 
 18.6 啟動整個系統(tǒng) 
 18.7 應用程序 
 18.8 文件系統(tǒng)的組織 
 18.9 應用程序監(jiān)視器 
 18.10 進一步深入 
 18.11 我們?nèi)绾蝿?chuàng)建素數(shù) 
第19章 多核小引 
第20章 多核編程 
 20.1 如何在多核的CPU上更有效率地運行 
  20.1.1 使用大量進程 
  20.1.2 避免副作用 
  20.1.3 順序瓶頸 
 20.2 并行化順序代碼 
 20.3 小消息、大計算 
 20.4 映射—歸并算法和磁盤索引程序 
  20.4.1 映射—歸并算法 
  20.4.2 全文檢索 
  20.4.3 索引器的操作 
  20.4.4 運行索引器 
  20.4.5 評論 
  20.4.6 索引器的代碼 
 20.5 面向未來的成長 
附錄A 給我們的程序?qū)懳臋n 
附錄B Microsoft Windows環(huán)境下的Erlang環(huán)境 
附錄C 資源 
附錄D 套接字應用程序 
附錄E 其他 
附錄F 模塊和函數(shù)參考 
索引

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) www.talentonion.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號