Keneequa Brown Chris Duzan Navaid Khalfay. Originally developed in 1986 by Joe Armstrong as a...

Preview:

Citation preview

Keneequa BrownChris DuzanNavaid Khalfay

Originally developed in 1986 by Joe Armstrong as a proprietary language within Ericsson

Released as open source in 1998 Currently on release R15B03

The origin of it's name is not confirmed An abbreviation of “Ericsson Language” Named after Daish Mathematician Agner

Krarup Erlang

Designed as a control program for a small telephone exchange

Designed to solve problems involving: Telecommunication systems/applications, Servers for internet applications, and Database applications that require soft real-

time behavior. Accidentally created in the process,

Ericsson didn't set out trying to make a new language

1986

First developedInitial version was implemented in Prolog and influenced by the programming language PLEX.

1995

Erlang went from lab product to real application following the collapse of AXE-N.

1998

Erlang was banned in new Ericsson products, causing Armstrong to leave and Erlang becoming open source by the end of the year.

2006

Native symmetric multiprocessing support added to the runtime system and virtual machine.

1995

Eight primitive data types: Integers Atoms Floats References Binaries Pids Ports Funs

Two compound data types Tuples Lists

Two forms of syntactic sugar Strings Records

Integer arithmetic is exact Only limited by available memory

Floats have a range of +/- 10308

Support for concurrency Small but powerful set of primitives

to create processes and communicate among them Processes are the primary reason to

structure an Erlang project

Else → semicolon ( ; ) End if or 'function end' → period ( . ) Comment → percent sign ( % )

Quicksort ExampleQuicksort Example

Erlang JavaFunctional

vs. Imperative

Servers & embedded systems

Erlang uses pattern matching which allows for more compact code

Imperative

Web Apps

Use virtual machines

Support multi-threading

Provide “garbage collection”

Don't have to worry about returning allocated space

BOTH

Facebook Chat service

Yahoo Social bookmarking service

T-Mobile SMS and authentication systems

Amazon Implement SimpleDB (database services)

Recommended