Top Banner
Erlang in 10 minutes Maria Stylianou November 19th, 2012 Scientific Writing and Communication
18

Erlang in 10 minutes

Jan 21, 2015

Download

Technology

Maria Stylianou

A short presentation about Erlang, specifically designed for concurrency characteristics.
For the course: Scientific Writing and Communication (KTH Royal Institute of Technology)
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Erlang in 10 minutes

Erlang

in 10 minutesMaria StylianouNovember 19th, 2012

Scientific Writing and Communication

Page 2: Erlang in 10 minutes

Outline

● What is Erlang

● What Erlang offers

● Concurrent Programming

● Four things to remember!2

Page 3: Erlang in 10 minutes

"The world is concurrent.

Things in the world don't share data.Things communicate with messages.

Things fail."- Joe Armstrong

What is Erlang (1/4)

3

Page 4: Erlang in 10 minutes

What is Erlang (2/4)

● Type: Programming Language

● Date of Birth: ~1986

● Place of Birth: Ericsson, Sweden

● Father: Joe Armstrong

● Aim of Existence: Target robust apps in telecom world

4

Page 5: Erlang in 10 minutes

● Functional Programming Language

● OS Independent

● Actor Model

i++

A1:5A1:6 A2:1spawn

What is Erlang (3/4)

?

5

Page 6: Erlang in 10 minutes

● Functional Programming Language

● OS Independent

● Actor Model

i++

A1:5A1:6 A2:1spawn

What is Erlang (3/4)

msgmsgmsgmsg

?

5

Page 7: Erlang in 10 minutes

What is Erlang (4/4)

● Build real-time systems○ scalable

○ highly available

○ reliable

● Built-in support for○ concurrency

○ distribution

○ fault tolerance

6

Page 8: Erlang in 10 minutes

Among many others...

● Sequential Programming

What Erlang offers

● Concurrent Programming

7

Page 9: Erlang in 10 minutes

Concurrent Programming

● Process Creation

● Process Communication

● Timeouts

● Fault Tolerance

8

Page 10: Erlang in 10 minutes

say_something(What, 0) -> Pattern Matching done;say_something(What, Times) -> if-then-else io:format("~p~n", [What]), say_something(What, Times - 1).

-module(say). % say.erl-export([start/0, say_something/2]).

ConcurrentProgramming

Light weight processes

Process Creation

start() -> spawn(say, say_something, [emdc, 3]), spawn(say, say_something, [rocks, 3]).

Create 2 processes

9

Page 11: Erlang in 10 minutes

say_something(What, 0) -> Pattern Matching done;say_something(What, Times) -> if-then-else io:format("~p~n", [What]), say_something(What, Times - 1).

-module(say). % say.erl-export([start/0, say_something/2]).

ConcurrentProgramming

Light weight processes

Process Creation

start() -> spawn(say, say_something, [emdc, 3]), spawn(say, say_something, [rocks, 3]).

Create 2 processes

9

Page 12: Erlang in 10 minutes

ConcurrentProgramming

Asynchronous Message Passing "Send and Pray"

Process Communication

A B

B! {msg, [1,2]} receive{msg, List} ->

handle(List)end.

10

Page 13: Erlang in 10 minutes

TimeoutsConcurrentProgramming

To avoid locking processes

A B

B! {msg, [1,2]} receive{msg, List} ->

handle(List)after 1000 ->

handle_timeout()end.

11

Page 14: Erlang in 10 minutes

ConcurrentProgramming

Fault Tolerance

● Exits● Exit signals

A Blinklink(A)

● Trapping Exits

A B

process_flag(trap_exit, true)12

Page 15: Erlang in 10 minutes

Four Things to remember!

Erlang's Most Valuable Characteristics

Concurrency

Scalability

High Performance

Fault Tolerance

1

2

3

413

Page 16: Erlang in 10 minutes

http://learnyousomeerlang.com 14

Page 17: Erlang in 10 minutes

References

1. Erlang/OTP, http://www.erlang.se

2. Erlang programming language, http://www.erlang.org

3. Learn you some Erlang, http://learnyousomeerlang.com

4. Joe Armstrong, "Programming Erlang, Software for a

Concurrent World"

15

Page 18: Erlang in 10 minutes

Erlang

in 10 minutesMaria StylianouNovember 19th, 2012

Scientific Writing and Communication