基本信息
- 原书名:ERLANG Programming
- 原出版社: O'Reilly Media
- 作者: Francesco Cesarini Simon Thompson
- 译者: 慕尼黑Isar工作组 杨剑
- 丛书名: 北京华章图文信息有限公司O'Reilly系列
- 出版社:机械工业出版社
- ISBN:9787111303251
- 上架时间:2011-3-10
- 出版日期:2011 年3月
- 开本:16开
- 页码:444
- 版次:1-1
- 所属分类:计算机 > 软件与程序设计 > 综合 > 高级程序语言设计

编辑推荐
《Erlang编程指南》由机械工业出版社出版。
内容简介
计算机书籍
《Erlang编程指南》是对Erlang语言的深入介绍。Erlang是任何必须并发、容错和快速响应的环境的理想编程语言。随着多核处理器及其针对并发的新的可扩展方式的发展,Erlang得到了广泛的使用。通过《Erlang编程指南》,你将学会如何使用Erlang编写复杂的并发程序,不管你是否有编程背景和经验。
《Erlang编程指南》由国际知名的Erlang社区领导者根据他们的培训材料编写而成。《Erlang编程指南》的重点集中在解释Erlang的语法和语义,并且介绍了其模式匹配、规范列表、递归、调试、网络和并发性等内容。
《Erlang编程指南》帮助你:
理解Erlang的强大功能及其包含的特殊功能。
学习并发背后的概念以及Erlang处理并发的方式。
编写高效的Erlang程序并保持代码整洁和良好的可读性。
探究Erlang如何满足分布式系统的要求。
轻松添加简单的图形用户界面。
学习Erlang的跟踪机制和调试并发和分布式系统。
使用内置的Mnesia数据库和其他表存储功能。
《Erlang编程指南》每章末尾都提供了练习题,并且由简单的示例贯穿全书。
作译者
作者:(美国)塞萨里尼(Francesco Cesarini) (美国)Simon Tbompson 译者:慕尼黑Isar工作组 杨剑
Francesco Cesarini,14年来一直向学生、开发人员、测试人员、项目和技术经理教授Erlang/OTP技术。他协助在爱尔兰、美国和英国建立起了Erlang开发中心。
Simon Thompson是一位肯特大学计算机实验室的逻辑和计算学教授,在过去25年里,他在那里教授本科生和研究生的计算学课程。
目录
前言/3
第1章 引言/9
为什么我应该使用Erlang/9
Erlang语言的历史及发展/11
Erlang的特性/12
Erlang和多核/17
案例研究/18
应该如何使用Erlang/21
第2章 Erlang基础/22
整数/22
Erlang终端/23
浮点数/23
基元/25
布尔类型/27
元组/28
列表/29
项元比较/34
变量/36
复杂数据结构/38
前言
Francesco: 为什么使用Erlang
那是在1994年,我正在Uppsala大学学习计算机科学,我参加的课程之一是并行程序设计。讲师举着“Erlang并行程序设计”(Prentice Hall)第1版,说道:“阅读它吧。”然后他举起讲义又说道,“还有做练习。”之后Erlang就很少被提及。它很快隐没在线程、内存共享、信号量和死锁的理论中。
该课程的主要练习是设计一个模拟胡萝卜、兔子和狼共同居住的环境。在这个环境中,兔子随机在土地上寻找生长的胡萝卜。如果它们吃了足够多的胡萝卜,就会变胖并且由一只分裂为两只。在这个环境中,狼搜寻兔子,如果狼吃了足够多的兔子,也会变胖并且由一只分裂为两只。如果兔子和狼靠近到了一定的距离,就会彼此发布食物和掠食者的消息。如果一只兔子发现了一片生长胡萝卜的土地,其他兔子也会很快知道这个地方。如果狼一旦发现了兔子,马上就开始追逐它。
最后的结果很有趣。一只古怪的兔子直接跑进了狼群,而其他的兔子跑向了其他方向,有时在发现胡萝卜的地方停下来进食。每一块胡萝卜地、每一只兔子和狼都代表了一个Erlang进程,它们之间通过消息传递进行通信。
这个练习花了我大约40个小时。虽然当时我就很喜欢使用Erlang,并且惊讶于Erlang并发模型的简易性和每个进程对操作系统线程极少的占用,但是当时并没有很重视它。毕竟Erlang也只是我为了得到学位而学习的几门语言之一。我在函数式编程中使用了机器语言,并且在实时程序设计中使用了ADA。Erlang对于我来说只是众多语言中的一种。在几个月后,当我开始学习面向对象程序设计时,这一观点得到了改观。
在面向对象程序设计课程中,我们需要模拟同一个环境,不过这一次用Eiffel语言——一种面向对象语言,我们的新讲师认为它极其适合此类模拟。尽管我已经解决过这个问题,可以直接重用其中某些算法,但我还是花费了大约120个人一时来解决它。
这使我惊讶地意识到Erlang的声明性语言和并行处理的特性是软件开发的新方向。当时,我并不确定编程语言是否会向Erlang模式转移,但是我相信,不管是哪种编程语言,将来一定会深受Erlang和它的先驱者的影响。于是我拿起电话打给Joe Armstrong——Erlang的创造者之一。一个星期之后,我拜访了爱立信的计算机科学实验室,从此我再没有回头。
Simon:为什么使用Erlang
我是在20世纪80年代早期开始进行函数式编程工作的,而在Erlang问世20年后才知道它的存在。Erlang最吸引我的地方是,它是为解决实际和复杂问题而设计的,并且通过一种优雅且极其有效的方式解决它们。这也正是近几年人们越来越多地把Erlang应用到的各种系统上的原因。
与Java、C++或Haskell语言相比,Erlang还是一种规模较小的语言,这也使得在Erlang上编写工具更具实用价值。这一点,还有我们在工作中所使用的库的质量,帮助在Kent工作的函数式程序设计组更加有效地为Erlang实现Wrangler重构工具。
谁应该阅读本书
我们写这本书的目的是向你介绍如何使用Erlang进行程序设计。我们并不要求你曾经使用过Erlang,或者熟悉其他函数式编程语言。
我们的确希望你已经拥有Java、C、Ruby或其他编程语言的经验,并且会特别指出Erlang与你所使用的其他语言的不同之处。
怎样阅读本书
我们把这本书分成两部分,第一部分需要顺序阅读,第二部分可以并行(或按照你喜欢的顺序)阅读,因为后一部分各章之间互相独立。
前11章包含了Erlang的核心部分:
·第1章概要介绍了这门语言,其中包含Erlang对于建立高效、健壮的并发系统的关键特性。我们还介绍了Erlang是如何发展到今天这种形式的,并且指出应用Erlang的成功实例,这些实例也就解释了为什么你也许会在你的项目中使用Erlang。
·第2章和第3章包含了在Erlang中的顺序编程的基础知识。在这两章中,我们介绍了Erlang程序设计的核心之一——递归,并且还介绍了Erlang中的单一赋值与C和Java等语言中的变量处理的不同。
·在包含顺序编程的同时,我们也介绍了Erlang的基本数据类型——数字、基元、字符串、列表和元组——并与其他语言的相似类型进行了比较。其他类型的介绍包含在稍后的各章中:记录类型在第7章,函数类型和二进制类型在第9章,ETS表中的大规模的存储在第10章中介绍。
序言
·能够快速且高效地开发软件。
·能够应对各种软件错误和硬件故障。
·能够实现软件的热升级,也就是不停止运行而完成升级。
Erlang刚“发明”的时候主要应用于电信系统。但是,今天大量的应用系统也有这样的需求,并且Erlang已经应用于各种系统,比如各种不同的分布式数据库、财务系统和聊天服务器等。最近由于适合在多核处理器上使用,人们对Erlang的兴趣再次被点燃。当整个世界还在苦苦努力寻找方法以提高使用多核处理器效率的时候,使用Erlang的应用实际上不需要任何改动就可以享受到多核处理器的好处。
一开始Erlang的影响扩展得比较缓慢,也许是因为Erlang一下就大胆引进了函数式编程、轻量级并发性、异步消息传递和独特的故障处理方法等,并且集所有这些功能于一身。显而易见,这就是为什么Ja va作为一种和C++比较相近的语言,却可以相对容易地被大众接受。然而,因为已经达到了前面提到过的目标,我们认为我们的方法经受住了时间的考验。所以目前Erlang的应用也在迅猛增长。
这本书对Erlang进行了精彩和实用的讲解,并结合了大量逸闻趣事来阐述Erlang语言的发展背景和理念。
我相信,这会是一次愉快的、收获颇丰的阅读。
——Mike Williams
Director of Traffic and Feature Software
Product Development Unit WCDMA, Ericsson AB
Erlang语言发明人之一
媒体评论
——Steve Vinoski,《IEEE Internet Computing》专栏作家