Home >> Computers >> Programming >> Languages >> Erlang


  Conferences
Contributions
Examples
  FAQs, Help and Tutorials
News and Media
Products
  Research


Erlang occurs as general-all-purpose concurrent programming language and runtime system. A sequent subset of Erlang occurs as functional language, with strict evaluation, single assignment, and dynamic typing. It was designed in the company Ericsson to support distributed, fault-tolerant, soft-real-time, non-stop applications. It supports hot swapping so code can be changed while forgoing stopping the body. Erlang wwhen originally the proprietary language in Ericsson, however was freed as open source in 1998. the Ericssin implementation is primarily interpreted, however likewise includes a compiler known as HiPE (non supported on tons platforms).

Creating & managing processes is trivial around Erlang, whereas threads are considered as complicated & error prone topic around virtually all languages.

Erlang is known as after A. K. Erlang. These are for instance erroneously thought that its title is an abbreviation of ERicsson LANGuage, owing to its heavily utilize within Ericsson.

Functional language

Code looks rather this:

-module(fact). -exportation([fac/1]). fac(Nought) -> I; fac(North) in which North > 0 -> North * fac(North-One).

Beneath is an implementation of the Quicksort algorithm.

%% quicksort(Names) %% Sort the listings of items -module(quicksort). -exportation([qsort/1]). qsort([]) -> []; qsort([Pivot|Rest]) -> qsort([ X || X <- Rest, X < Pivot]) ++ [Pivot] ++ qsort([ Y || Y <- Rest, Y >= Pivot]).

A above case recursively calls a work qsort until no extra to become sorted. A expression [ X || X <- Rest, X < Pivot] can be read as "Chose all X where X is a member of Rest and X is less than Pivot", resulting in a very easy way of handling Lists. Since your family could evaluate any boolean expression between 2 different datatypes, a evaluation is straight forward - for instance, Unity < a might go to confessedly.

But, a comparability work may be utilized in case the choose in which Erlang bases its link to value (admittedly or even treasonably) needs to become changed. For instance, in case i would need an regulated names in which a > I evaluates confessedly.

Concurrency oriented language
A independent nature and severity of Erlang is trend lines for concurrency. It has microscopic however mighty placed of primitives to produce processes & communicate between the children. A run model is based on C.A.R. Hoare's Communicating Sequential Processes.

Code examples: Pid = spawn(Mod, Func, Args) % execute work Func when newly process

Pid ! a_message % send message to the run (asynchronously)

receive % receive message sent to this process a_message -> do_something prevent.

Concurrency supports primary method of error-treating inside Erlang. Whilst the run crashes, it neatly exits & sends the message to the controlling run world health organization might require action. This way of error treating might increase maintainability & reduce complexness of code.

Distribution
Erlang wwhen freed by Ericsson as open-source to assure its independence from either one marketer & to increase awareness of the language. Distribution of the language together by using libraries & real-period distributed database (Mnesia) is referred to as a Open Telecom Platform, or OTP. Ericsson & two or three more corporations offer commercial trend lines for Erlang.

Since ingesting a open-source path around 1998, it became used by many corporations globe-wide, including Nortel and T-Mobile. Notwithstanding, it hasn't however be the wide-spread mainstream programing language.

As of 2005, Erlang is under active development with regular releases. These are available for many Unix-like operating systems and Microsoft Windows.

Open Source Erlang
By Ericsson Computer Science Laboratory, soft realtime, declarative, functional language for concurrent, distributed systems. Compiles to BSD, Linux, Solaris, VxWorks, Windows. Descriptions, documents, links, projects: Ericsson, user. [Open Source, Erlang Public License]

Ericsson Erlang/OTP
Commercial support for Erlang/OTP (Open Telecom Platform) under Solaris, NT, and VxWorks.

erlang-fr.org
English page of French Erlang site, a few interesting articles.

Erlang Projects
Site allowing members to participate in Erlang related projects, share documents, and add resources of interest to others.

Sjöland & Thyselius Telecom AB
Provides experienced Erlang/OTP consultants, offers courses and is able to take responsibility for out-sourced development and/or maintenance Erlang projects. S&T provides its services world-wide.

Dr. Dobb's Embedded Systems
An Erlang definition.

Erlang Training and Consulting Ltd.
Offers Erlang/OTP training courses at all levels, seminars, consulting services and code reviews. Based in London, its consultants and trainers are available for long and short term jobs worldwide.

Wiki
A Wiki site developed in Erlang with news and discussions about Erlang/OTP.

Trap Exit
A one-stop place where to find Erlang information, including forums, documentation, tutorials and chats.

Erlang Mailing List
Erlang questions list and archives.


Computers: Computer Science: Distributed Computing
Computers: Parallel Computing: Programming: Languages
Computers: Programming: Languages: Compiled: Functional
Computers: Programming: Languages: Concurrent
Computers: Programming: Languages: Functional
Computers: Programming: Languages: Garbage Collected
Computers: Programming: Languages: Open Source
Computers: Software: Operating Systems: Network: Distributed
Computers: Software: Operating Systems: Parallel
Computers: Software: Operating Systems: Realtime




© 2005 GeneralAnswers.org