Erlang的那点事.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* * 视界因你精彩 Erlang的那点事 张松@2011年8月25日 Erlang 从读音开始,该怎么读? 二郎? 恶狼? 艾兰? 一啊浪? 随你便 一,什么是Erlang 一种函数式编程语言。顺序执行的Erlang是一个及早求值, 单次赋值和动态类型的函数式编程语言。 自R11B-4版本开始,Erlang也开始支持脚本式解释器(escript)。 二,Erlang的起源 Erlang得名于丹麦数学家及统计学家Agner Krarup Erlang,同时Erlang还可以表示Ericsson Language。 Erlang并非一门新语言,它出现于1987年,只是当时对并发、分布式需求还没有今天这么普遍,当时可谓英雄无用武之地。经过十年的发展,于1998年发布开源版本并称为“开源电信平台”。 创始人Joe Armstrong,从prolog发展而来。 三,有何特点? 并发性;Erlang支持超大量级的并发进程,并且不需要操作系统具有并发机制(轻量级进程)。 分布式;一个分布式Erlang系统是多个Erlang节点组成的网络(数千台机器的集群) 健壮性;Erlang具有多种基本的错误检测能力,它们能够用于构建容错系统。 软实时性;Erlang支性持可编程的“软”实时系统,使用了递增式垃圾收集技术。 三,有何特点? 热代码升级;Erlang允许程序代码在运行系统中被修改。旧代码能被逐步淘汰而后被新代码替换。在此过渡期间,新旧代码是共存的。(最多两份代码) 外部接口;Erlang进程与外部世界之间的通讯使用和在Erlang进程之间相同的消息传送机制(Port进程)。 。。。 四,谁在用? 国内: 4399 webgame 校内的广告平台 Sohu的白社会 阿里巴巴的云计算平台 腾讯QQ web群空间 盛大,51,也有系统用了erlang(日志) 电信网管项目 四,谁在用? 国外: 2008年5月22日,FaceBook宣布部署采用erlang编写的chat server. Startup公司开发的webgame …… 目前,Erlang最大的商业用户是爱立信,其他知名用户有北电网络、亚马逊以及T-Mobile等 (来自wikimedia) 更多:Who uses Erlang for product development? 五,不同之处 1,怪异的语法 A /= B A ! B [Item || Item - lists:seq(1,56), Item rem 2=:=0 ] 五,不同之处 2,颠覆传统的编程思想和概念 变量不再可变 同名的函数 一切表达式皆有值 六,基本概念 数据类型: 数字,原子(atom),元组(tuple), 列表(list),字符串,二进制 模块、函数: 尾递归,匿名,高阶 记录(record)、防卫式/断言(guard)、列表解析、等等 七,并行编程 利用BIF spawn/1 创建一个进程 创建一个进程的时间在微妙级,轻量级进程 可绑定CPU/CORE 1:1的模拟真实世界 七,并行编程 进程间没有任何共享数据,如有需要可用消息来实现 协助数据交换的存储方式 内置:进程字典、ETS、DETS、MNESIA 第三方:各种主流方式 八,Erlang的适用场景 并发型网络服务器,game server 消息转发,我秀 队列处理,rabbitMQ 代理服务器,外服收费代理 谢谢 ! 很少接触函数式的编程语言,我们常用的都是命令式编程语言 * Erl大约与perl同年,比c++年轻4岁,比java年长十多岁 Erlang语言创始人Joe Armstrong当年在爱立信做电话网络方面的开发,他使用Smalltalk,可惜那个时候Smalltalk太慢,不能满足电话网络的高性能要求。 但Joe实在喜欢Smalltalk,于是定购了一台Tektronix Smalltak机器。但机器要两个月时间才到,Joe在等待中百无聊赖,就开始使用Prolog,结果等Tektronix到来的时候,他已经对 Prolog更感兴趣,Joe当然不满足于精通Prolog,经过一段时间的试验,Joe给Prolog加上了并发处理和错误恢复,于是Erlang就诞 生了。 * 轻量级进程,只存在于VM中,没有多余的系统调用的开销 每个机器上可以跑多个节点 错误处理哲学: * 代码热升级 code_change 函数 * 目前使用范围还是小,从业人员少,招人困难 据我了解到的 主要是游戏行业和少数SNS服务在用 * * 或许是函数式编程语言的共同点,其他FP语言不甚了解 * 变量只能单次赋值,比如执行A=1,之后可以再执行一次 A=1, 但

文档评论(0)

wxc6688 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档