2008年(3010)
分类: LINUX
2008-05-27 15:50:01
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 下载地址