当前位置:首页 > 工业技术
Erlang程序设计
Erlang程序设计

Erlang程序设计PDF电子书下载

工业技术

  • 电子书积分:14 积分如何计算积分?
  • 作 者:(瑞典)JOEARMSTRONG著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2008
  • ISBN:9787115188694
  • 页数:427 页
图书介绍:本书讲述Erlang程序设计,主要涵盖顺序型编程、异常处理、编译和运行代码、并发编程、并发编程中的错误处理、分布式编程、多核编程等内容。本书将帮助读者在消息传递的基础上构建分布式的并发系统,免去锁与互斥技术的羁绊,使程序在多核CPU上高效运行。本书讲述的各种设计方法和行为将成为设计容错与分布式系统中的利器。
《Erlang程序设计》目录

第1章 引言 1

1.1路线图 1

1.2正式起航 3

1.3致谢 3

第2章 入门 5

2.1概览 5

阶段1:茫然无绪 5

阶段2:初窥门径 5

阶段2.5:观其大略,不求甚解 6

阶段3:运用自如 6

重中之重 6

2.2 Erlang安装 7

二进制发布版 7

从源代码创建Erlang 8

使用CEAN 8

2.3本书代码 8

2.4启动shell 9

2.5简单的整数运算 10

2.6变量 11

变量不变 12

模式匹配 13

单一赋值为何有益于编写质量更高的代码 14

2.7浮点数 15

2.8原子 16

2.9元组 17

创建元组 18

从元组中提取字段值 18

2.10列表 19

术语 20

定义列表 20

从列表中提取元素 20

2.11字符串 21

2.12再论模式匹配 22

第3章 顺序型编程 24

3.1模块 24

3.2购物系统——进阶篇 28

3.3同名不同目的函数 31

3.4 fun 31

以fun为参数的函数 32

返回fun的函数 33

定义你自己的抽象流程控制 34

3.5简单的列表处理 35

3.6列表解析 38

快速排序 39

毕达哥拉斯三元组 40

变位词 40

3.7算术表达式 41

3.8断言 41

断言序列 42

断言样例 43

true断言的使用 44

过时的断言函数 44

3.9记录 44

创建和更新记录 45

从记录中提取字段值 45

在函数中对记录进行模式匹配 46

记录只是元组的伪装 46

3.10 case/if表达式 46

case表达式 47

if表达式 47

3.11以自然顺序创建列表 48

3.12累加器 48

第4章 异常 50

4.1异常 50

4.2抛出异常 51

4.3 try...catch 51

缩减版本 53

使用try...catch的编程惯例 53

4.4 catch 54

4.5改进错误信息 55

4.6 try...catch的编程风格 55

经常会返回错误的程序 55

出错几率比较小的程序 56

4.7捕获所有可能的异常 56

4.8新老两种异常处理风格 56

4.9栈跟踪 57

第5章 顺序型编程进阶 58

5.1 BIF 58

5.2二进制数据 58

5.3比特语法 60

16bit色彩的封包与解包 60

比特语法表达式 61

高级比特语法样例 62

5.4小问题集锦 67

apply 68

属性 68

块表达式 71

布尔类型 71

布尔表达式 72

字符集 72

注释 72

epp 73

转义符 73

表达式和表达式序列 74

函数引用 74

包含文件 75

列表操作符++和-- 75

宏 76

在模式中使用匹配操作符 77

数值类型 78

操作符优先级 79

进程字典 79

引用 80

短路布尔表达式 80

比较表达式 81

下划线变量 82

第6章 编译并运行程序 83

6.1开启和停止Erlang shell 83

6.2配置开发环境 84

为文件加载器设定搜索路径 84

在系统启动时批量执行命令 85

6.3运行程序的几种不同方法 86

在Erlang shell中编译运行 86

在命令提示符下编译运行 86

把程序当作escript脚本运行 88

用命令行参数编程 89

6.4使用makefile进行自动编译 90

makefile模板 90

定制makefile模板 92

6.5在Erlang shell中的命令编辑 93

6.6解决系统死锁 93

6.7如何应对故障 93

未定义/遗失代码 94

makefile不能工作 94

shell没有响应 95

6.8获取帮助 96

6.9调试环境 96

6.10崩溃转储 97

第7章 并发 98

第8章 并发编程 101

8.1并发原语 101

8.2一个简单的例子 102

8.3客户/服务器介绍 103

8.4创建一个进程需要花费多少时间 107

8.5带超时的receive 109

只有超时的 receive 109

超时时间为0的receive 109

使用一个无限等待超时进行接收 110

实现一个计时器 110

8.6选择性接收 111

8.7注册进程 112

8.8如何编写一个并发程序 113

8.9尾递归技术 114

8.10使用MFA启动进程 115

8.11习题 115

第9章 并发编程中的错误处理 116

9.1链接进程 116

9.2on_exit处理程序 117

9.3远程错误处理 118

9.4错误处理的细节 118

捕获退出的编程模式 119

捕获退出信号(进阶篇) 120

9.5错误处理原语 125

9.6链接进程集 126

9.7监视器 126

9.8存活进程 127

第10章 分布式编程 128

10.1名字服务 129

第一步:一个简单的名字服务 130

第二步:在同一台机器上,客户端运行于一个节点而服务器运行于第二个节点 131

第三步:让客户机和服务器运行于同一个局域网内的不同机器上 132

第四步:在因特网上的不同主机上分别运行客户机和服务器 133

10.2分布式原语 134

10.3分布式编程中使用的库 136

10.4有cookie保护的系统 136

10.5基于套接字的分布式模式 137

lib_chan 137

服务器代码 138

第11章 IRC Lite 141

11.1消息序列图 142

11.2用户界面 143

11.3客户端程序 144

11.4服务器端组件 147

聊天控制器 147

聊天服务器 148

群组管理器 149

11.5运行程序 150

11.6聊天程序源代码 151

聊天客户端 151

Lib_chan配置 154

聊天控制器 154

聊天服务器 155

聊天群组 156

输入输出窗口 157

11.7习题 159

第12章 接口技术 160

12.1端口 161

12.2为一个外部C程序添加接口 161

C程序 162

Erlang程序 164

12.3 open_port 167

12.4内联驱动 167

12.5注意 170

第13章 对文件编程 172

13.1库的组织结构 172

13.2读取文件的不同方法 172

从文件中读取所有Erlang数据项 174

从文件的数据项中一次读取一项 174

从文件中一次读取一行数据 176

将整个文件的内容读入到一个二进制数据中 176

随机读取一个文件 176

读取ID3标记 177

13.3写入文件的不同方法 179

向一个文件中写入一串Erlang数据项 179

向文件中写入一行 181

一步操作写入整个文件 181

在随机访问模式下写入文件 183

13.4目录操作 183

13.5查询文件的属性 184

13.6复制和删除文件 185

13.7小知识 185

13.8一个搜索小程序 186

第14章 套接字编程 189

14.1使用TCP 189

从服务器上获取数据 189

一个简单的TCP服务器 192

改进服务器 195

注意 196

14.2控制逻辑 197

主动型消息接收(非阻塞) 197

被动型消息接收(阻塞) 198

混合型模式(半阻塞) 198

14.3连接从何而来 199

14.4套接字的出错处理 199

14.5 UDP 200

最简单的UDP服务器和客户机 201

一个计算阶乘UDP的服务器 201

关于UDP协议的其他注意事项 203

14.6向多台机器广播消息 203

14.7 SHOUTcast服务器 204

SHOUTcast协议 205

SHOUTcast服务器的工作机制 205

SHOUTcast服务器的伪代码 206

运行SHOUTcast服务器 211

14.8进一步深入 212

第15章 ETS和DETS:大量数据的存储机制 213

15.1表的基本操作 214

15.2表的类型 214

15.3 ETS表的效率考虑 215

15.4创建ETS表 216

15.5 ETS程序示例 217

三字索引迭代器 218

构造表 219

构造表有多快 219

访问表有多快 220

胜出的是 220

15.6 DETS 222

15.7我们没有提及的部分 224

15.8代码清单 225

第16章 OTP概述 228

16.1通用服务器程序的进化路线 229

server 1:原始服务器程序 229

server 2:支持事务的服务器程序 230

server 3:支持热代码替换的服务器程序 231

server 4:同时支持事务和热代码替换 233

server 5:压轴好戏 234

16.2 gen_server起步 236

第一步:确定回调模块的名称 237

第二步:写接口函数 237

第三步:编写回调函数 237

16.3 gen_server回调的结构 240

启动服务器程序时发生了什么 240

调用服务器程序时发生了什么 240

调用和通知 241

发给服务器的原生消息 241

Hasta la Vista, Baby(服务器的终止) 242

热代码替换 242

16.4代码和模板 243

gen_server模板 243

my_bank 245

16.5进一步深入 246

第17章 Mnesia: Erlang数据库 247

17.1数据库查询 247

选取表中所有的数据 248

选取表中的数据 249

按条件选取表中的数据 249

从两个表选取数据(关联查询) 250

17.2增删表中的数据 250

增加一行 251

删除一行 251

17.3 Mnesia事务 252

取消一个事务 253

加载测试数据 255

do()函数 255

17.4在表中保存复杂数据 256

17.5表的类型和位置 257

创建表 258

表属性的常见组合 259

表的行为 260

17.6创建和初始化数据库 260

17.7表查看器 261

17.8进一步深入 262

17.9代码清单 262

第18章 构造基于OTP的系统 266

18.1通用的事件处理 267

18.2错误日志 270

记录一个错误 270

配置错误日志 270

分析错误 274

18.3警报管理 275

18.4应用服务 277

素数服务 277

面积服务 278

18.5监控树 279

18.6启动整个系统 282

18.7应用程序 285

18.8文件系统的组织 287

18.9应用程序监视器 288

18.10进一步深入 289

18.11我们如何创建素数 290

第19章 多核小引 292

第20章 多核编程 294

20.1如何在多核的CPU上更有效率地运行 295

使用大量进程 295

避免副作用 295

顺序瓶颈 296

20.2并行化顺序代码 297

20.3小消息、大计算 300

20.4映射-归并算法和磁盘索引程序 303

映射-归并算法 303

全文检索 307

索引器的操作 308

运行索引器 309

评论 310

索引器的代码 310

20.5面向未来的成长 311

附录A 给我们的程序写文档 312

附录B Microsoft Windows环境下的Erlang环境 316

附录C 资源 318

附录D 套接字应用程序 321

附录E 其他 335

附录F 模块和函数参考 351

索引 415

相关图书
作者其它书籍
返回顶部