Erlang概述收藏

Erlang启动参数学习 项目中脚本里大量使用erlang的启动参数配置,今天来学习一下关于erlang的启动参数 阅读详情
  Erlang概述收藏

新一篇: 什么是Python | 旧一篇: Ruby简介

 

Erlang概述

Erlang
不但是一种编程语言,而且它具有比编程语言更加贴近操作系统的一些特性:并发线程、作业调度、内存管理、分布式、网络化等。据说使用Erlang编写的Yaws Web服务器,其并发性能是apache的15倍!

这个Erlang初始开源版本包含了Erlang的实现,同时它也是用于构建分布式高可用性系统的Ericsson中间件的最大组成部分。

Erlang
具有以下特性:

并发性 - Erlang具有超强的轻量级进程,这种进程对内存的需求是动态变化的,并且它没有共享内存和通过异步消息传送的通讯。Erlang支持超大量级的并发线程,并且不需要操作系统具有并发机制。

分布式 - Erlang被设计用于运行在分布式环境下。一个Erlang虚拟机被成为Erlang节点。一个分布式Erlang系统是多个Erlang节点组成的网 络(通常每个处理器被作为一个节点)。一个Erlang节点能够创建运行在其它节点上的并行线程,而其它节点可以使用其它操作系统。线程依赖不同节点之间 的通讯,这完全和它依赖于单一节点一样。

健壮性 - Erlang具有多种基本的错误检测能力,它们能够用于构建容错系统。例如,进程能够监控其它进程的状态和活动,甚至这些进程是在其它节点上执行。在分布式系统中的线程能够配置为在其它节点故障的情况下自动进行故障恢复,并在故障节点恢复时自动迁移回到恢复节点。

软实时性 - Erlang支持可编程的“软”实时系统,这种系统需要反应时间在毫秒级。而在这种系统中,长时间的垃圾收集(garbage collection)延迟是无法接受的,因此Erlang使用了递增式垃圾收集技术。

热代码升级 - 一些系统不能够由于软件维护而停止运行。Erlang允许程序代码在运行系统中被修改。旧代码能被逐步淘汰而后被新代码替换。在此过渡期间,新旧代码是共存的。这也使得安装bug补丁、在运行系统上升级而不干扰系统操作成为了可能。

递增式代码装载 - 用户能够控制代码如何被装载的细节。在嵌入式系统中,所有代码通常是在启动时就被完全装载。而在开发系统中,代码是按需装载的,甚至在系统运行时被装载的。如果测试到了未覆盖的bug,那么只有具有bug的代码需要被替换。

外部接口 - Erlang进程与外部世界之间的通讯使用和在Erlang进程之间相同的消息传送机制。这种机制被用于和操作系统通讯、与其它语言编写的程序交互。如果出于高效率的需要,这种机制的一个特殊版本也允许例如C程序这样的代码直接链接到Erlang运行时系统中来。

Erlang组件

Erlang
具有许多单独的组件,它们能够在开发应用时作为组建块(building blocks)使用。同时这些组件也熟知Erlang的系统消息(load、unload、start、stop、restart、change code)。

Inets - HTTP 1.0
服务器和FTP客户端。

Mnesia -
使用Erlang的分布式实时数据库。它支持RAM复制、磁盘存储、动态改变shema、保存任意复杂的数据结构。Mnesia之所以非常快速,是因为它 运行在和应用相同的地址空间(因为Mnesia和应用都使用Erlang编写)。Mnesia展示了Erlang的强大:你能够使用多少种语言使用少于 20000行的代码编写一个全特性、工业强度、分布式的DBMS?

Orber - CORBA v2.0
对象请求代理(ORB)。

SNMP –
可扩展的SNMP v1/v2代理和MIB编译器。

Erlang工具和代码库

Erlang
具有一套常用工具库:

Appmon -
进程组图形监控(在本地和远程节点上)。

ASN.1 -
支持ASN.1基本标记法和BER、DER、PER编码规则的编译时和运行时的代码包。

Compiler - Erlang
编译器。

Debugger -
图形化Erlang调试器。

ERTS - Erlang
运行时系统,包括虚拟机、垃圾收集、端口映射守护进程。

GS -
编写图形用户接口的代码库。

IC -
把OMG的接口定义语言(IDL)转换到Erlang、C和Java语言的编译器。

Kernel -
运行Erlang系统所必须的C代码:Erlang内建功能(BIFs);代码、启动、命名服务;对网络和分布式的支持;装载器、连接器、记录器;操作系统和文件系统接口。

Mnemosyne -
可选的用于Mnesia的查询语言。

Mnesia Session -
以IDL定义的与Mnesia接口的外部语言,它们通过IIOP和erl_interface协议对Mnesia进行访问。

OS monitor (OS_MON) -
监控CPU、硬盘、内存使用情况,包括SNMPv1/v2 MIBs。并且提供了与Solaris syslogd、Windows NT事件日志的接口。

Parse tools -
用于Erlang的LALR-1解析生成器(yecc),它和yacc类似。Yecc使用BMF语法定义作为输入,生成Erlang代码作为解析输出。Yecc被用于生成Erlang解析器。

PMan -
跟踪、查看Erlang进程状态(在本地或者远程节点上)的工具。

SASL -
进程、错误、崩溃报告处理、报告浏览、释放处理、重载管理。

Stdlib -
标准代码库:输入、输出;基于内存、磁盘的表存储(ETS和DETS);图表、字典、列表、字符串、集合、队列;正则表达式;数学公式。Erlang解释 器、tokenizer、解析器、lint和格式化打印。用于容错服务器的通用框架、事件处理器、状态机和线程监管等等。

Table visualizer -
查看ETS和Mnesia表格的工具。

Toolbar -
简化了对Erlang工具的访问。

Tools -
覆盖分析器、优化器、基于文字的跟踪器、Emacs模式、Emacs TAGS文件生成器、make工具、调用图形化工具。

十分钟Erlang快速入门

启动Erlang

如果你使用unix系统的话,请输入“erl”;而如果你使用Window系统的话,请点击Erlang的开始图标来启动Erlang。你应该看到如下界面:

os prompt > erl

Erlang (JAM) emulator version 4.7.3.3

 

Eshell V4.7.3.3  (abort with ^G)

1>



“>”
提示表示了系统正在等待输入。

将Erlang用作计算器

1> 2131836812671*12937192739173917823.

27579983733990928813319999135233

2>



记住每个表达式都是以句点和空格为结束符的!

编辑从前的表达式

我们使用简单的emacs行编辑命令编辑从前的表达式,最常用的命令如下:
        •^P
获取上一行。
        •^N
获取下一行。
        •^A
将输入焦点移动到当前行首。
        •^E
将输入焦点移动到当前行尾首。
        •^D
删除当前光标所在的字符。
        •^F
向前移动一个字符。
        •^B
向后移动一个字符。
        •
回车 执行当前命令。
请注意: ^X 表示Control + X 。尝试按下Control+P,看看什么会发生?

编译你的第一个程序

在你所喜欢的文本编辑器中输入以下内容,并将其保存到文件中:

-module(test).

-export([fac/1]).



fac(0) -> 1;

fac(N) -> N * fac(N-1).



保存文件名为test.erl,请注意文件名必须和模块名相同。

通过输入c(test)编译程序,然后运行它:

3> c(test).

{ok,test}

30> test:fac(20).

2432902008176640000

4> test:fac(40).

815915283247897734345611269596115894272000000000

32>



Ok
,现在你也可以尝试编写一些有趣的程序了。

更多资源

        •Erlang入门
        •Erlang官方站点
        •Erlang中文站点
        •Erlang中文讨论组

发表于 @ 2007年11月02日 11:19:00|评论(0)|编辑

新一篇: 什么是Python | 旧一篇: Ruby简介

Linux安装ErLang(图文解说详细版) 最近开个新坑,就是在linux环境中操作开发环境,带大家玩转Linux,会整理出一篇Linux的专栏,欢迎大家订阅!! 博主服务器版本:CentOS7.8 1.下载Erlang安装包 下载地址:官网链接 2.将安装包上传到服务器上面去 3.解压Erlang tar -zxvf otp_src_24.2.tar.gz 4.编译erlang的依赖环境 跟大家讲一下,erlang依赖的环境特别特别多,就拿gcc来说,如果以前安装过这个环境还不止,所以我们重新安装一下也无所谓所以我们执行以下的命令: 阅读详情

相关推荐

Erlang emulator 实现分析

Erlang emulator 实现分析Erlang emulator 实现分析

Erlang概述

 Erlang概述 Erlang不但是一种编程语言,而且它具有比编程语言更加贴近操作系统的一些特性:并发线程、作业调度、内存管理、分布式、网络化等。据说使用Erlang编写的Yaws Web服务器,其并发性能是apache的15倍! 这个Erlang初始开源版本包含了Erlang的实现,同时它也是用于构建分布式高可用性系统的Ericsson中间件的最大组成部分。

朝阳之辉 1289

prometheus-rule-parser:leex + yecc(Erlang的lex + yacc)

用于标记Prometheus v1警报规则的规范。 在REPL中: erl> leex:file(rules). erl> c(rules). erl> {ok, Tokens, _} = rules:string("ALERT MyAlert FOR 5m") LABELS { sev=\"warn\", team=\"sre\" }"). erl> yecc:file(rules_parser). erl> c(rules_parser). erl> rules_parser:parse(Tokens). 笔记 分词器可以处理除IF条件外的所有内容。 解析器只能处理ALERT和FOR关键字。

5月17号软件资讯更新合集....

COSMIC 是老牌 Linux PC 厂商 System76 专为 ​​​Pop!_OS 发行版打造的桌面环境,采用 Rust 编写,并使用了原生 Rust 跨平台图形工具包 Iced。Iced 是一个为 Rust 编程语言编写的跨平台 GUI 库,“专注于简单性和类型安全”。Iced 的设计思路受到了 Elm 语言的启发。Iced 工具包不仅适用于 Linux、macOS 和 Windows,还适用于 Web 应用程序。

2301_76364917的博客 695

数据库和BI工程师面试题

 一.数据库 1.Oracle数据库,视图与表的区别?普通视图与物化视图的区别?物化视图的作用? 2.Oracle数据库,有哪几类索引,分别有什么特点? 3.Union与Union All的区别? 4.对游标的理解?游标的分类?使用方法? 5.如何查找和删除表中的重复数据?给出方法或SQL。 6.不借助第三方工具,怎么查看SQL的执行计划? 7.创建索引有哪些需要注意的要点?

web_go_run的专栏 1万+

视频预处理--经典方法卷积3D

在三维卷积操作中,卷积核不仅在空间维度上滑动,还在时间维度上滑动,从而同时捕捉时间和空间上的特征。通过合理设置步长和填充,可以灵活控制输出特征图的大小和特征提取的效果。你的理解非常准确:三维卷积核就像是一个长度为 3 的滑动窗口,每次选取 3 个连续的帧进行卷积操作,而步长和填充则进一步优化了这一过程。

m0_73359068的博客 1649

RibbtMQ和Erlang的下载安装和版本对应

RabbitMQ介绍 RabbitMQ是由erlang开发的AMQP(Advanced Message Queuing Protocol)的开源实现。他是高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间性设计。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,消费者亦然。 RabbitMQ支持多种客户端,如:.net、java、c、php等。支持ajax,在用于在分布式系统中存储转发消息能起到至关重要的作用 ,并且在易用性、扩展性、高可用性等方面也表现不俗。 在安装Rab

weixin_46218220的博客 1181

CODESYS Softmotion(一)功能介绍

一、CODESYS SoftMotion RTE SL产品 1.1 CODESYS Runtime SL 产品家族介绍 目前支持的主流厂商的硬件产品,让部署在上面的成为实时设备。 对于Windows系统,根据需求选择对应的Runtime: RTE极大的提高了实时性,适合进行运动控制,同时RTE还支持了多个主从站协议: 还可以选择可选的功能(Single License): RTE对硬件和系统有要求,如果你需要硬件功能,那么网卡会有最低要求。 1.2 RTE的下载和安装 在官网http://codes

Fishfishfishfishcat 2万+

linux上centos7查看erlang版本

//erlang版本:5.10.4 [root@localhost ~]# erl -version Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 5.10.4 //rabbitmq-server版本:rabbitmq-server-3.6.12-1.el6.noarch //要配套奥,要不然会报错误 ...

My_SweetXue的博客 2万+

从零到一:银河麒麟OS下C#跨平台开发的避坑指南

本文详细介绍了在银河麒麟OS下进行C#跨平台开发的完整流程,从开发环境搭建到避坑指南。针对国产操作系统特性,提供了.NET Core安装、开发工具链配置、桌面应用开发及部署优化的实战经验,特别关注ARM架构适配和性能调优,帮助开发者高效应对国产化开发挑战。

weixin_29221753的博客 863

手把手教你学Simulink——基于AI融合与智能调度的场实例:强化学习在卫星资源分配中的应用

本文详细介绍了如何利用Simulink和强化学习技术实现智能卫星资源分配。文章首先分析了低轨卫星通信系统面临的动态资源调度挑战,提出采用强化学习(特别是PPO算法)的解决方案。接着逐步展示了完整的建模过程:从Simulink项目创建、卫星通信环境建模(用户业务、信道特性、资源池),到强化学习任务定义(状态空间、动作空间、奖励函数),再到PPO智能体的构建与训练。最后通过仿真验证,PPO智能体在系统吞吐量、公平性和阻塞率等关键指标上均优于传统方法。该方案为卫星通信系统的智能资源管理提供了可行方案,并支持进一步

MHD0815的博客 190

更改Erlang的工作目录收藏

更改Erlang的工作目录收藏 新一篇: Mnesia启动过程 | 旧一篇: 进入erlang的世界 function StorePage(){d=document;t=d.selection?(d.selection.type!=None?d.selection.createRange().text:):(d.getSelection?d.getSelection

skyremember的专栏 893

【图像超分】论文复现:经典超分 | SAN的Pytorch源码复现,跑通源码,适配高版本的python/pytorch/cuda,使用EDSR-PyTorch进行训练和测试

本文介绍了单幅图像超分辨率重建方法SAN(二阶注意网络)的代码实现。文章详细说明了在高版本Python/Pytorch环境下适配SAN源码的方法,并提供了修改后的完整代码和预训练模型下载链接。 主要亮点包括: 将SAN模型实现整合到EDSR-Pytorch框架中,解决了高版本环境下的兼容性问题 提供了完整的数据集准备指南(DIV2K训练集和5个测试集) 给出了详细的测试命令,涵盖x2、x3、x4不同放大倍率 公开了预训练模型和可视化结果的下载资源 提供了修改后的适配高版本环境的代码。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 1413

ErLang语法提要收藏

 ErLang语法提要收藏 新一篇: erlang网络编程的几个性能调优和注意点 | 旧一篇: .NET Rocks上值得花时间了解的一些技术信息 function StorePage(){d=document;t=d.selection?(d.selection.type!=None?d.selection.createRange().text:):(d.get

skyremember的专栏 662

基于若依的ruoyi-nbcio-plus支持VForm3表单字段数据保存到数据库的一种方法——全网首创(一)

基于若依的ruoyi-nbcio-plus支持VForm3表单字段数据保存到数据库的一种方法——全网首创(一)

宁波阿成的博客 660

Python 爬虫实战:亚马逊商品评论 + 评分抓取(情感分析数据预处理)

在电子商务领域,用户评论是了解产品口碑和市场反馈的重要渠道。亚马逊作为全球领先的电商平台,拥有海量的商品评论数据。本文将详细介绍如何使用 Python 编写爬虫程序,从亚马逊网站抓取商品评论和评分数据,并进行情感分析的数据预处理。

yansideyucsdn的博客 769

Erlang 是什么

 Erlang 是什么一种“小众”语言(排名50之外) 一种函数式语言 (变量只能赋值一次) 一种动态类型语言(变量类型在运行时决定,代码需要编译后才能执行,与Python,Ruby等不一样) 一种强类型语言 一种面向并发(Concurrency Oriented)的语言  《一场茶杯里的风暴》(刊于《程序员》06年9、10期),《轻松实现可伸缩性,容错性,和负

skyremember的专栏 1万+

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

第一个 Erlang 程序: Ftp 下载客户端收藏

  第一个 Erlang 程序: Ftp 下载客户端收藏 新一篇: 简单的语法高亮 Erlang 编辑器 | 旧一篇: pon 认证错误的一个可能的原因 function StorePage(){d=document;t=d.selection?(d.selection.type!=None?d.selection.createRange().text:):(d.g

skyremember的专栏 928

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

进入erlang的世界收藏

 进入erlang的世界收藏 新一篇: 更改Erlang的工作目录 | 旧一篇: 数学和数学库函数,你还记得多少? function StorePage(){d=document;t=d.selection?(d.selection.type!=None?d.selection.createRange().text:):(d.getSelection?d.getSe

skyremember的专栏 844

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

【RabbitMQ】RabbitMQ和Erlang下载与安装步骤—2023超详细最新版

【RabbitMQ】RabbitMQ和Erlang下载与安装步骤—2023超详细最新版

四季轮换叶,一路招摇胜 1万+

Erlang 01收藏

 Erlang 01收藏 新一篇: Erlang 02 | 旧一篇: Erlang 02 function StorePage(){d=document;t=d.selection?(d.selection.type!=None?d.selection.createRange().text:):(d.getSelection?d.getSelection():)

skyremember的专栏 760

centos7 安装erlang21.3

centos7 安装erlang21.3 事在人为2018 2019-04-19 10:01:51 4134 收藏 4 展开 安装依赖环境 yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel unixODBC-devel 下载Erlang wget http://erlang.org/download/otp_src_21.3.tar.gz 解压 tar ...

技无涯的博客 1807

Erlang十分钟快速入门

http://www.matrix.org.cn/resource/article/2007-09-04/2948b459-5ac5-11dc-af81-f34262335978.html Erlang十分钟快速入门 cleverpig 发表于 2007-09-04 16:59:36 作者:cleverpig     来源:Matrix 评论数:16 点击数:

skyremember的专栏 4129

【erlang】吃螃蟹 rust 开发 erlang nif 的正确方式 rustler

使用rust开发erlang nif,使用rustler开发erlang的nif

undefined 1607

收藏的博客 -- Erlang学习

centos7环境下的erlang otp的编译(★firecat推荐★) 一、技术博客 http://blog.youkuaiyun.com/erlib 为什么我要选择erlang+go进行服务器架构(1)为什么我要选择erlang+go进行服务器架构(2)http://www.qingliangcn.org/https://github.com/qingliangcn开源mgee—2010...

$firecat利白的代码足迹$ 1102

Erlang 语言入门-1收藏

 Erlang 语言入门-1收藏 新一篇: Action | 旧一篇: Erlang 03 function StorePage(){d=document;t=d.selection?(d.selection.type!=None?d.selection.createRange().text:):(d.getSelection?d.getSelection():

skyremember的专栏 871
上一篇: [译]使用Mochiweb构建百万级Comet程序,第一篇
下一篇: Erlang 是什么
skyremember
博客等级 码龄20年 204粉丝 484原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值