Erlang 第1讲 - 简介及交互式环境

RabbitMQ是近年来比较流行的消息队列产品,它是用Erlang语言编写的,Erlang虽然一直流行于一些特定领域里,但也毕竟属于小众语言,随着RabbitMQ的推广,Erlang也逐渐被更多的人所了解。

Erlang语言概述

  • Erlang,是瑞典的爱立信公司的乔·阿姆斯特朗、罗伯特·维丁、迈克·威廉姆斯开发的编程语言。


    erlang.png
  • Erlang最早应用在爱立信公司的电话交换机中。
  • 它是一种并发式语言,函数式语言。
  • Erlang名称的由来:
    Erlang由比亚恩·戴克命名,因丹麦数学家Agner Krarup Erlang而得名,也是Ericsson Language(爱立信编程语言)的缩写。
  • Erlang发布于1986年,1998年发表开放源码版本,称为开放电信平台(OTP)。
  • Erlang衍生自Prolog语言,它的衍生过程如下:
    PLANNER → Prolog → Erlang
  • Erlang的扩展名:
    源程序文件:erl,头文件:hrl
  • Erlang的注释:%
  • 官网下载地址:
    https://www.erlang.org/downloads
  • Erlang程序运行在虚拟机上,起初运行在JAM虚拟机上,后来改用Beam虚拟机,通过第三方也能运行在其它平台,如运行在JVM上的Erjang等。

Beam虚拟机概述

  • Beam虚拟机(Bogdan's Abstract Machine),是一种基于寄存器的虚拟机,它是ERTS(Erlang运行时系统的一个组成部分)。
  • Erlang源代码要首先编译为Beam字节码,然后运行在Beam虚拟机上,Beam字节码文件的扩展名为:beam。
  • Beam比JVM和CLR等虚拟机出现的更早,和后两者相比,它的优势在于热代码加载和并发等方面,而不是速度,这更符合电信基础设施的需求。
  • Beam虚拟机支持如下语言:
    Erlang,Elixir,Hambler,LFE,Reia等等。
    Hambler是一种衍生自Haskell的语言,擅长5G、IoT、云计算和边缘计算等领域。

Erlang交互式环境(Eshell)

erl是交互式环境的启动程序。

在系统终端输入erl后,会有如下提示:

Eshell V11.0.3  (abort with ^G)
1> _

Eshell中的表达式要以句号结尾,如输入“1+2.”,则会输出3:

Eshell V11.0.3  (abort with ^G)
1> 1+2.
3
2> _

退出Eshell:

  • halt()
    立即停止系统,强制退出,它的全写是erlang:halt(),冒号前边的是模块名,此函数也可以携带一个整型参数,表示程序的返回值,默认为0,表示正常退出。
  • q()
    停止系统,有可能存在退不出去的情况,它是init:stop()的别名。

函数式语言和命令式语言

第1讲的最后我们来简单的聊一下这两类不同的编程语言。

  • 函数式语言,以函数为第一公民,函数式语言讲究的是没有副作用,如变量不能改值、没有循环语句等,但是都通过函数来实现了这些功能,这是另外一种编程思维。
  • 函数式编程语言有很多,如:
    LISP、Scheme、SML、O'Caml、F#、Erlang、Elixir、Haskell、Hambler等等。
  • 而主流语言则绝大多数都是命令式语言,如:
    C、C++、OC、Java、C#、Go、Python、Swift、Scala、Kotlin、JS等等。
  • 虽然说函数式语言不能算是主流语言,但是其中有很多特性和思维都是很优秀的,所有说现在的很多命令式语言,都在逐渐的吸取函数式语言的一些特性。
  • 最后有一点需要强调,这两类语言和面向对象编程是不同的角度而言的,因为函数式语言也有面向对象的和非面向对象的,而命令式语言也有面向对象的和面向过程的。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,039评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,426评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,417评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,868评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,892评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,692评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,416评论 3 419
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,326评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,782评论 1 316
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,957评论 3 337
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,102评论 1 350
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,790评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,442评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,996评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,113评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,332评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,044评论 2 355