Transcript Erlang
Keneequa Brown
Chris Duzan
Navaid 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 developed
Initial 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.
1995
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.
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 Example
Java
Erlang
Functional vs.
Imperative
Servers &
embedded
systems
Erlang uses
pattern
matching
which allows
for more
compact code
BOTH
Use virtual machines
Support multithreading
Provide “garbage
collection”
Don't have to worry
about returning
allocated space
Imperative
Web Apps
Facebook
Yahoo
Social bookmarking service
T-Mobile
Chat service
SMS and authentication systems
Amazon
Implement SimpleDB (database services)