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等等。
  • 虽然说函数式语言不能算是主流语言,但是其中有很多特性和思维都是很优秀的,所有说现在的很多命令式语言,都在逐渐的吸取函数式语言的一些特性。
  • 最后有一点需要强调,这两类语言和面向对象编程是不同的角度而言的,因为函数式语言也有面向对象的和非面向对象的,而命令式语言也有面向对象的和面向过程的。

你可能感兴趣的:(Erlang 第1讲 - 简介及交互式环境)