130 likes | 297 Vues
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”
E N D
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
1995 1986 Erlang went from lab product to real application following the collapse of AXE-N. First developed Initial version was implemented in Prolog and influenced by the programming language PLEX.
2006 1998 1995 Native symmetric multiprocessing support added to the runtime system and virtual machine. Erlang was banned in new Ericsson products, causing Armstrong to leave and Erlang becoming open source by the end of the year.
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 ( % )
Erlang • Java • Functional vs. Imperative • Servers & embedded systems • Erlang uses pattern matching which allows for more compact code • Imperative • Web Apps BOTH • Use virtual machines • Support multi-threading • Provide “garbage collection” • Don't have to worry about returning allocated space
Facebook • Chat service • Yahoo • Social bookmarking service • T-Mobile • SMS and authentication systems • Amazon • Implement SimpleDB (database services)