Chinaunix首页 | 论坛 | 博客
  • 博客访问: 658474
  • 博文数量: 1655
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 16800
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-28 11:10
文章分类

全部博文(1655)

文章存档

2008年(1655)

我的朋友

分类: LINUX

2008-05-28 14:14:57

Erlang is a declarative language for programming concurrent and distributed

systems which was developed by the authors at the Ericsson and Ellemtel Computer

Science Laboratories.

The development of Erlang started as an investigation into whether modern

declarative programming paradigms could be used for programming large industrial

telecommunications switching systems. It was soon realised that languages which

were suitable for programming telecommunications systems were also suitable for

a wide range of industrial embedded real-time control problems.

Many of the Erlang primitives provide solutions to problems which are com-

monly encountered when programming large concurrent real-time systems. The

module system allows the structuring of very large programs into conceptually

manageable units. Error detection mechanisms allow the construction of fault-

tolerant software. Code loading primitives allow code in a running system to be

changed without stopping the system.

Erlang has a process-based model of concurrency. Concurrency is explicit

and the user can precisely control which computations are performed sequentially

and which are performed in parallel. Message passing between processes is asyn-

chronous, that is, the sending process continues as soon as a message has been

sent.

The only method by which Erlang processes can exchange data is message

passing. This results in applications which can easily be distributed – an application written for a uniprocessor can easily be changed to run on a multiprocessor or network of uniprocessors. The language has built-in mechanisms for distributed programming which makes it easy to write applications which can run either on asingle computer, or on a network of computers.

Variables in Erlang have the property of single assignment3–once a value has

been assigned to a variable this value can never be changed. This property has

important consequences when debugging or transforming a program.

Programs are written entirely in terms of functions – function selection is made

by pattern matching which leads to highly succinct programs.

The Erlang system has an inbuilt notion of time – the programmer can specify

how long a process should wait for a message before taking some action. This

allows the programming of real-time applications. Erlang is suitable for most

soft real-time applications where response times are in the order of milliseconds.

Current information about Erlang can be obtained from the World Wide Web

at e-mail requests for information can be sent

to erlang@erix.ericsson.se.

Commercially supported implementations of Erlang can be obtained from

Ericsson Software Technology AB. For information please send e-mail to

erl-biz@erlang.ericsson.se.

Concurrent Programming in Erlang Second Edition 下载地址
阅读(95) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~