SlideShare a Scribd company logo
1 of 75
Download to read offline
Actor, an elegant model for concurrent and
distributed computation
1
Alessio Coltellacci
Twitter: @lightplay8 Github: @NotBad4U
Mail: alessio.coltellacci@clever-cloud.com
Didier Plaindoux
Developer | @DevFestToulouse team member
twitter: @dplaindoux github: @d-plaindoux
2
Credits to
Actor, an elegant model for concurrent computation
3
Concurrency refers to the ability of different parts or units
of a program to be executed out-of-order or in partial
order, without affecting the final outcome
TL;DR: dealing a lots of things at once
Mutex, semaphore, spinlock, ...
4
n! unit tests
5
Process Calculus
6
● CSP described by Tony Hoare in 1978
● π-calculus developed by R. Milner, J. Parrow and D. Walker in 1992
Communicating Sequential Processes (CSP)
7
PRODUCER ==
nb : integer := 0;
*[
nb < 100 -> consumer ! nb; nb :=
nb + 1
]
Communicating Sequential Processes (CSP)
PRODUCER ==
nb : integer := 0;
*[
nb < 100 -> consumer ! nb; nb
:= nb + 1
]
8
Communicating Sequential Processes (CSP)
CONSUMER ==
nb : integer;
*[
true -> producer ? nb; print (nb)
]
9
PRODUCER ==
nb : integer := 0;
*[
nb < 100 -> consumer ! nb; nb :=
nb + 1
]
Communicating Sequential Processes (CSP)
CONSUMER ==
nb : integer;
*[
true -> producer ? nb; print (nb)
]
10
PRODUCER ==
nb : integer := 0;
*[
nb < 100 -> consumer ! nb; nb :=
nb + 1
]
Communicating Sequential Processes (CSP)
CONSUMER ==
nb : integer;
*[
true -> producer ? nb; print (nb)
]
11
PRODUCER ==
nb : integer := 0;
*[
nb < 100 -> consume ! nb; nb := nb + 1
]
MAIN ==
[
producer :: PRODUCER
||
delegate :: DELEGATE
]
12
Distributed system is a system whose components are located on different
networked computers, which coordinate their actions by passing messages to
one another
TL;DR: multiple software components that are on multiple
computers
Actor, an elegant model for distributed computation
π-Calculus
13
Actor
14
Actor,
encapsulate common resources and
act as service or resource providers
15
Actor Anatomy
Actor
16
Actor Anatomy
Actor
State
Behavior
17
Interface
Actor Anatomy
Actor
State
Mailbox
Behavior
18
Interface
Actor Anatomy
Actor
State
Mailbox
Behavior
Address
19
Interface
Actor Anatomy
Actor
State
Mailbox
Behavior
Address
ref
20
Interface
Actor Physiology
State
MailboxAddress
Behavior
Actor
21
Interface
Actor Physiology
State
MailboxAddress
Behavior
Actor
22
Interface
Actor Physiology
State
MailboxAddress
Behavior
Actor
23
Interface
Actor Physiology
State
MailboxAddress
Behavior
Actor
24
Interface
Actor Axiomes
1. Create actors to replace failed actors or to increase the processing
2. Send messages to actors it knows i.e. Acquaintances
3. Behaviour: designate what to do with the next message
25
Actor Axiomes illustrated
26
1. class Energy(value: Int)(region: ActorRef) extends Actor {
2.
3. def receive: Receive = {
4. case TryConsume =>
5. sender ! Consumed(value)
6. region ! Destroy(self)
7. context become consumed
8. }
9.
10. def consumed: Receive = {
11. case _ =>
12. ()
13. }
14. }
Actor Axiomes illustrated
27
1. class Energy(value: Int)(region: ActorRef) extends Actor {
2.
3. def receive: Receive = {
4. case TryConsume =>
5. sender ! Consumed(value)
6. region ! Destroy(self)
7. context become consumed
8. }
9.
10. def consumed: Receive = {
11. case _ =>
12. ()
13. }
14. }
Actor Axiomes illustrated
28
1. class Energy(value: Int)(region: ActorRef) extends Actor {
2.
3. def receive: Receive = {
4. case TryConsume =>
5. sender ! Consumed(value)
6. region ! Destroy(self)
7. context become consumed
8. }
9.
10. def consumed: Receive = {
11. case _ =>
12. ()
13. }
14. }
Actor Axiomes illustrated
29
1. class Energy(value: Int)(region: ActorRef) extends Actor {
2.
3. def receive: Receive = {
4. case TryConsume =>
5. sender ! Consumed(value)
6. region ! Destroy(self)
7. context become consumed
8. }
9.
10. def consumed: Receive = {
11. case _ =>
12. ()
13. }
14. }
Actor Axiomes illustrated
30
1. class Energy(value: Int)(region: ActorRef) extends Actor {
2.
3. def receive: Receive = {
4. case TryConsume =>
5. sender ! Consumed(value)
6. region ! Destroy(self)
7. context become consumed
8. }
9.
10. def consumed: Receive = {
11. case _ =>
12. ()
13. }
14. }
Properties of Communication
The only way for an Actor to affect another
is through explicit messaging.
This allow to avoid concurrency problem.
31
Do not communicate by sharing memory;
instead, share memory by communicating.
32
Properties of Communication
Actor 1 Actor 2
mailbox mailbox
33
Properties of Communication
● Zero-copy message
● Immutable message
● Acquaintance
● Not deterministic
34
Address
/events/storage
Actor 1 Actor 2 /procedures
Actor 2
35
Address
/events/storage
Actor 1 Actor 2 /procedures
Actor 2
M x N relations
36
Message
● Past
● Now
● Future | Promise
● Performative
● Ontology
● Delivered at most one (no duplication)
37
Message processing
● Paradigm
● Continuous
● Consecutive vs Interleaved
● Dead Letters
38
The isolated Turn (epoch) principle
● Macro-step semantics
● An actor processing a message from its Inbox
● Single isolated step
● Model is free of low-level data race & deadlocks
39
Actors come in system
40
Demo
41
42
Can I use ?
Synchronisation: superviser actor
Actor
consumer
Actor
consumer
Actor
consumer
Actor
superviser
Actor supply
clerk
Can I use ?
Actor don’t compete for resources they use a superviser
43
You usually have
to wait for that
which is worth
waiting for.
Synchronisation: superviser actor
Actor
consumer
Actor
consumer
Actor
consumer
Actor
superviser
Actor supply
clerk
yes
44
Synchronisation: superviser actor
Actor
consumer
Actor
consumer
Actor
consumer
Actor
superviser
Actor supply
clerk
Release lock
Your turn
45
Domain
1 let bst = domain {
2 insert(key, value) {
3 ...
4 }
5 query(key) {
6 ...
7 }
8 }
9
10 let plugin1 = actor {
11 insert(bst, key, value) {
12 whenExclusive(bst) {
13 bst.insert(key, value);
14 }
15 }
16 }
17
18
19 let plugin2 = actor {
20 queryInsert(bst, key) {
21 whenExclusive(bst) {
22 value := bst.query(key);
23 if(value > 0) {
24 bst.insert(key, value - 1)
25 }
26 }
27 }
28 }
46
Domain
1 let bst = domain {
2 insert(key, value) {
3 ...
4 }
5 query(key) {
6 ...
7 }
8 }
9
10 let plugin1 = actor {
11 insert(bst, key, value) {
12 whenExclusive(bst) {
13 bst.insert(key, value);
14 }
15 }
16 }
17
18
19 let plugin2 = actor {
20 queryInsert(bst, key) {
21 whenExclusive(bst) {
22 value := bst.query(key);
23 if(value > 0) {
24 bst.insert(key, value - 1)
25 }
26 }
27 }
28 }
47
Domain
1 let bst = domain {
2 insert(key, value) {
3 ...
4 }
5 query(key) {
6 ...
7 }
8 }
9
10 let plugin1 = actor {
11 insert(bst, key, value) {
12 whenExclusive(bst) {
13 bst.insert(key, value);
14 }
15 }
16 }
17
18
19 let plugin2 = actor {
20 queryInsert(bst, key) {
21 whenExclusive(bst) {
22 value := bst.query(key);
23 if(value > 0) {
24 bst.insert(key, value - 1)
25 }
26 }
27 }
28 }
48
Players must be able to interact and move across region map boundaries
49
Pattern: Map-Centric Game Server
50
Region 1 Region 2
Players must be able to interact and move across region map boundaries
51
Players must be able to interact across region map boundaries with other entities
52
...And move across region map boundaries
53
Move in region 1
● Global existence
● Automatic instanciation
Location Transparency
54
Demo
55
Persistence
● Event sourcing
● Akka persistence
● Serialization
● Eventual consistency
● Messaging Guarantees
56
Recovery
The “let it crash” Philosophy
57
Handling external input | output
58
Handling Failure
59
“An actor never fails:
If a server S crashes, the next
message sent to an actor A that was
running on S causes Orleans to
automatically reinstantiate A on
another server.”
TL;DR: If the recipient doesn’t exist…
create it so thing will never fails
Akka Hierarchy and Supervision
● Supervision
● Strategy (Resume, Restart, Stop or Escalate)
60
Microservice based on Actors
61
Testing & Debugging
Actoverse, debugging a program of the two-phase commit protocol
62
Blue Green
Actors can be improved or re-factored
without affecting or stopping the rest of the application
63
Actor Use-Cases
64
● Multithreaded program for concurrent computation
● Distributed system
● System that can need mobility and discovery
● Based on events or commands (event s
Anti Use-Cases
65
“Shared-state concurrency is nevertheless a fundamental programming style,
needed for systems code, for maximal performance, and for implementing other
styles of concurrency.”
Aaron Turon
TL;DR: If you need true execution time performance, don’t use the
actor model
Concurrent, distributed and mobile computation
● Join-Calculus: Formalism for distributed computations design
● Brane-Calculus: …
● Ambient-Calculus: Formalism for distributed and mobile computations
design
66
Ambient Calculus
67
Ambient Calculus
68
Ambient Calculus
69
n [ in m.P ] | m [ R ] -> m [ n [ in m.P ] | R ]
in m.P R Rin
m.P
ambient n ambient m m
n
AmbientTalk
70
Producer
1. deftype EchoService;
2.
3. def echoF := when: EchoService discovered: { |echoSvc|
4. system.println("Discovered an echo service");
5. echoSvc;
6. } within: 2.minutes;
7.
8. network.online();
9.
10. echoF<-echo("test1");
11.
12. def resultF := echoF<-echo("test2")@TwoWay;
13. when: resultF becomes: { |value|
14. system.println("Reply: " + value);
15. };
Consumer
1. def service := object: {
2. def echo(text) {
3. system.println("Received: "+text);
4. text
5. }
6. };
7.
8. deftype EchoService;
9.
10. def pub := export: service as: EchoService;
11. network.online();
AmbientTalk
71
Producer
1. deftype EchoService;
2.
3. def echoF := when: EchoService discovered: { |echoSvc|
4. system.println("Discovered an echo service");
5. echoSvc;
6. } within: 2.minutes;
7.
8. network.online();
9.
10. echoF<-echo("test1");
11.
12. def resultF := echoF<-echo("test2")@TwoWay;
13. when: resultF becomes: { |value|
14. system.println("Reply: " + value);
15. };
Consumer
1. def service := object: {
2. def echo(text) {
3. system.println("Received: "+text);
4. text
5. }
6. };
7.
8. deftype EchoService;
9.
10. def pub := export: service as: EchoService;
11. network.online();
AmbientTalk
72
Producer
1. deftype EchoService;
2.
3. def echoF := when: EchoService discovered: { |echoSvc|
4. system.println("Discovered an echo service");
5. echoSvc;
6. } within: 2.minutes;
7.
8. network.online();
9.
10. echoF<-echo("test1");
11.
12. def resultF := echoF<-echo("test2")@TwoWay;
13. when: resultF becomes: { |value|
14. system.println("Reply: " + value);
15. };
Consumer
1. def service := object: {
2. def echo(text) {
3. system.println("Received: "+text);
4. text
5. }
6. };
7.
8. deftype EchoService;
9.
10. def pub := export: service as: EchoService;
11. network.online();
AmbientTalk
73
Producer
1. deftype EchoService;
2.
3. def echoF := when: EchoService discovered: { |echoSvc|
4. system.println("Discovered an echo service");
5. echoSvc;
6. } within: 2.minutes;
7.
8. network.online();
9.
10. echoF<-echo("test1");
11.
12. def resultF := echoF<-echo("test2")@TwoWay;
13. when: resultF becomes: { |value|
14. system.println("Reply: " + value);
15. };
Consumer
1. def service := object: {
2. def echo(text) {
3. system.println("Received: "+text);
4. text
5. }
6. };
7.
8. deftype EchoService;
9.
10. def pub := export: service as: EchoService;
11. network.online();
AmbientTalk
74
Producer
1. deftype EchoService;
2.
3. def echoF := when: EchoService discovered: { |echoSvc|
4. system.println("Discovered an echo service");
5. echoSvc;
6. } within: 2.minutes;
7.
8. network.online();
9.
10. echoF<-echo("test1");
11.
12. def resultF := echoF<-echo("test2")@TwoWay;
13. when: resultF becomes: { |value|
14. system.println("Reply: " + value);
15. };
Consumer
1. def service := object: {
2. def echo(text) {
3. system.println("Received: "+text);
4. text
5. }
6. };
7.
8. deftype EchoService;
9.
10. def pub := export: service as: EchoService;
11. network.online();
75
https://docs.google.com/presentation/d/1756ZfeqY00h-lnKsDl
6tRBiJyGZscOGbvdoqZ5R0Cv0/edit?usp=sharing
Twitter: @lightplay8 Github: @NotBad4U
Mail: alessio.coltellacci@clever-cloud.com
Demo: https://github.com/agtors

More Related Content

What's hot

Elastic response pseudo spectrum in c programming
Elastic response pseudo spectrum in c programmingElastic response pseudo spectrum in c programming
Elastic response pseudo spectrum in c programmingSalar Delavar Qashqai
 
Narrow bicliques cryptanalysisoffullidea
Narrow bicliques cryptanalysisoffullideaNarrow bicliques cryptanalysisoffullidea
Narrow bicliques cryptanalysisoffullideaRifad Mohamed
 
Functional Programming You Already Know
Functional Programming You Already KnowFunctional Programming You Already Know
Functional Programming You Already KnowKevlin Henney
 
Whats new in ES2019
Whats new in ES2019Whats new in ES2019
Whats new in ES2019chayanikaa
 
Zero-Overhead Metaprogramming: Reflection and Metaobject Protocols Fast and w...
Zero-Overhead Metaprogramming: Reflection and Metaobject Protocols Fast and w...Zero-Overhead Metaprogramming: Reflection and Metaobject Protocols Fast and w...
Zero-Overhead Metaprogramming: Reflection and Metaobject Protocols Fast and w...Stefan Marr
 
Building High-Performance Language Implementations With Low Effort
Building High-Performance Language Implementations With Low EffortBuilding High-Performance Language Implementations With Low Effort
Building High-Performance Language Implementations With Low EffortStefan Marr
 
Generating Predicate Callback Summaries for the Android Framework
Generating Predicate Callback Summaries for the Android FrameworkGenerating Predicate Callback Summaries for the Android Framework
Generating Predicate Callback Summaries for the Android FrameworkMobileSoft
 
Lattice Cryptography
Lattice CryptographyLattice Cryptography
Lattice CryptographyPriyanka Aash
 
Testing Hadoop jobs with MRUnit
Testing Hadoop jobs with MRUnitTesting Hadoop jobs with MRUnit
Testing Hadoop jobs with MRUnitEric Wendelin
 
Reinforcement learning Research experiments OpenAI
Reinforcement learning Research experiments OpenAIReinforcement learning Research experiments OpenAI
Reinforcement learning Research experiments OpenAIRaouf KESKES
 
Homomorphic encryption and Private Machine Learning Classification
Homomorphic encryption and Private Machine Learning ClassificationHomomorphic encryption and Private Machine Learning Classification
Homomorphic encryption and Private Machine Learning ClassificationMohammed Ashour
 
A practical Introduction to Machine(s) Learning
A practical Introduction to Machine(s) LearningA practical Introduction to Machine(s) Learning
A practical Introduction to Machine(s) LearningBruno Gonçalves
 
NLP on a Billion Documents: Scalable Machine Learning with Apache Spark
NLP on a Billion Documents: Scalable Machine Learning with Apache SparkNLP on a Billion Documents: Scalable Machine Learning with Apache Spark
NLP on a Billion Documents: Scalable Machine Learning with Apache SparkMartin Goodson
 
Parceable serializable
Parceable serializableParceable serializable
Parceable serializableSourabh Sahu
 

What's hot (20)

Elastic response pseudo spectrum in c programming
Elastic response pseudo spectrum in c programmingElastic response pseudo spectrum in c programming
Elastic response pseudo spectrum in c programming
 
Narrow bicliques cryptanalysisoffullidea
Narrow bicliques cryptanalysisoffullideaNarrow bicliques cryptanalysisoffullidea
Narrow bicliques cryptanalysisoffullidea
 
UtilityCostCalcCode
UtilityCostCalcCodeUtilityCostCalcCode
UtilityCostCalcCode
 
Functional Programming You Already Know
Functional Programming You Already KnowFunctional Programming You Already Know
Functional Programming You Already Know
 
Java 7
Java 7Java 7
Java 7
 
Survey onhpcs languages
Survey onhpcs languagesSurvey onhpcs languages
Survey onhpcs languages
 
同態加密
同態加密同態加密
同態加密
 
Whats new in ES2019
Whats new in ES2019Whats new in ES2019
Whats new in ES2019
 
Zero-Overhead Metaprogramming: Reflection and Metaobject Protocols Fast and w...
Zero-Overhead Metaprogramming: Reflection and Metaobject Protocols Fast and w...Zero-Overhead Metaprogramming: Reflection and Metaobject Protocols Fast and w...
Zero-Overhead Metaprogramming: Reflection and Metaobject Protocols Fast and w...
 
Building High-Performance Language Implementations With Low Effort
Building High-Performance Language Implementations With Low EffortBuilding High-Performance Language Implementations With Low Effort
Building High-Performance Language Implementations With Low Effort
 
Generating Predicate Callback Summaries for the Android Framework
Generating Predicate Callback Summaries for the Android FrameworkGenerating Predicate Callback Summaries for the Android Framework
Generating Predicate Callback Summaries for the Android Framework
 
Lattice Cryptography
Lattice CryptographyLattice Cryptography
Lattice Cryptography
 
Operating System Engineering
Operating System EngineeringOperating System Engineering
Operating System Engineering
 
JUnit PowerUp
JUnit PowerUpJUnit PowerUp
JUnit PowerUp
 
Testing Hadoop jobs with MRUnit
Testing Hadoop jobs with MRUnitTesting Hadoop jobs with MRUnit
Testing Hadoop jobs with MRUnit
 
Reinforcement learning Research experiments OpenAI
Reinforcement learning Research experiments OpenAIReinforcement learning Research experiments OpenAI
Reinforcement learning Research experiments OpenAI
 
Homomorphic encryption and Private Machine Learning Classification
Homomorphic encryption and Private Machine Learning ClassificationHomomorphic encryption and Private Machine Learning Classification
Homomorphic encryption and Private Machine Learning Classification
 
A practical Introduction to Machine(s) Learning
A practical Introduction to Machine(s) LearningA practical Introduction to Machine(s) Learning
A practical Introduction to Machine(s) Learning
 
NLP on a Billion Documents: Scalable Machine Learning with Apache Spark
NLP on a Billion Documents: Scalable Machine Learning with Apache SparkNLP on a Billion Documents: Scalable Machine Learning with Apache Spark
NLP on a Billion Documents: Scalable Machine Learning with Apache Spark
 
Parceable serializable
Parceable serializableParceable serializable
Parceable serializable
 

Similar to Actor, an elegant model for concurrent and distributed computation

Microservices in Go_Dessi_Massimiliano_Codemotion_2017_Rome
Microservices in Go_Dessi_Massimiliano_Codemotion_2017_Rome Microservices in Go_Dessi_Massimiliano_Codemotion_2017_Rome
Microservices in Go_Dessi_Massimiliano_Codemotion_2017_Rome Massimiliano Dessì
 
Object Oriented Programming Short Notes for Preperation of Exams
Object Oriented Programming Short Notes for Preperation of ExamsObject Oriented Programming Short Notes for Preperation of Exams
Object Oriented Programming Short Notes for Preperation of ExamsMuhammadTalha436
 
MITx 6.00.1x Introduction to Computer Science and Programming Using Python - ...
MITx 6.00.1x Introduction to Computer Science and Programming Using Python - ...MITx 6.00.1x Introduction to Computer Science and Programming Using Python - ...
MITx 6.00.1x Introduction to Computer Science and Programming Using Python - ...Dylan-Wu
 
Python Programming - IX. On Randomness
Python Programming - IX. On RandomnessPython Programming - IX. On Randomness
Python Programming - IX. On RandomnessRanel Padon
 
Functional Programming in Java - Code for Maintainability
Functional Programming in Java - Code for MaintainabilityFunctional Programming in Java - Code for Maintainability
Functional Programming in Java - Code for MaintainabilityMarcin Stepien
 
Hierarchical free monads and software design in fp
Hierarchical free monads and software design in fpHierarchical free monads and software design in fp
Hierarchical free monads and software design in fpAlexander Granin
 
CS101- Introduction to Computing- Lecture 35
CS101- Introduction to Computing- Lecture 35CS101- Introduction to Computing- Lecture 35
CS101- Introduction to Computing- Lecture 35Bilal Ahmed
 
Early exploring design alterna1ves of smart sensor so5ware with actors
Early exploring design alterna1ves of smart sensor so5ware with actorsEarly exploring design alterna1ves of smart sensor so5ware with actors
Early exploring design alterna1ves of smart sensor so5ware with actorsESUG
 
1183 c-interview-questions-and-answers
1183 c-interview-questions-and-answers1183 c-interview-questions-and-answers
1183 c-interview-questions-and-answersAkash Gawali
 
Object Oriented Technologies
Object Oriented TechnologiesObject Oriented Technologies
Object Oriented TechnologiesUmesh Nikam
 
Functional Patterns for C++ Multithreading (C++ Dev Meetup Iasi)
Functional Patterns for C++ Multithreading (C++ Dev Meetup Iasi)Functional Patterns for C++ Multithreading (C++ Dev Meetup Iasi)
Functional Patterns for C++ Multithreading (C++ Dev Meetup Iasi)Ovidiu Farauanu
 
Systematic Generation Data and Types in C++
Systematic Generation Data and Types in C++Systematic Generation Data and Types in C++
Systematic Generation Data and Types in C++Sumant Tambe
 
Designing Architecture-aware Library using Boost.Proto
Designing Architecture-aware Library using Boost.ProtoDesigning Architecture-aware Library using Boost.Proto
Designing Architecture-aware Library using Boost.ProtoJoel Falcou
 
Oop2011 actor presentation_stal
Oop2011 actor presentation_stalOop2011 actor presentation_stal
Oop2011 actor presentation_stalMichael Stal
 
GRAPHICAL STRUCTURES in our lives
GRAPHICAL STRUCTURES in our livesGRAPHICAL STRUCTURES in our lives
GRAPHICAL STRUCTURES in our livesxryuseix
 
C++ Interview Question And Answer
C++ Interview Question And AnswerC++ Interview Question And Answer
C++ Interview Question And AnswerJagan Mohan Bishoyi
 
C++ questions And Answer
C++ questions And AnswerC++ questions And Answer
C++ questions And Answerlavparmar007
 
Apache Flink: API, runtime, and project roadmap
Apache Flink: API, runtime, and project roadmapApache Flink: API, runtime, and project roadmap
Apache Flink: API, runtime, and project roadmapKostas Tzoumas
 
Introduction to Akka - Atlanta Java Users Group
Introduction to Akka - Atlanta Java Users GroupIntroduction to Akka - Atlanta Java Users Group
Introduction to Akka - Atlanta Java Users GroupRoy Russo
 

Similar to Actor, an elegant model for concurrent and distributed computation (20)

Microservices in Go_Dessi_Massimiliano_Codemotion_2017_Rome
Microservices in Go_Dessi_Massimiliano_Codemotion_2017_Rome Microservices in Go_Dessi_Massimiliano_Codemotion_2017_Rome
Microservices in Go_Dessi_Massimiliano_Codemotion_2017_Rome
 
Object Oriented Programming Short Notes for Preperation of Exams
Object Oriented Programming Short Notes for Preperation of ExamsObject Oriented Programming Short Notes for Preperation of Exams
Object Oriented Programming Short Notes for Preperation of Exams
 
MITx 6.00.1x Introduction to Computer Science and Programming Using Python - ...
MITx 6.00.1x Introduction to Computer Science and Programming Using Python - ...MITx 6.00.1x Introduction to Computer Science and Programming Using Python - ...
MITx 6.00.1x Introduction to Computer Science and Programming Using Python - ...
 
Python Programming - IX. On Randomness
Python Programming - IX. On RandomnessPython Programming - IX. On Randomness
Python Programming - IX. On Randomness
 
Functional Programming in Java - Code for Maintainability
Functional Programming in Java - Code for MaintainabilityFunctional Programming in Java - Code for Maintainability
Functional Programming in Java - Code for Maintainability
 
Hierarchical free monads and software design in fp
Hierarchical free monads and software design in fpHierarchical free monads and software design in fp
Hierarchical free monads and software design in fp
 
CS101- Introduction to Computing- Lecture 35
CS101- Introduction to Computing- Lecture 35CS101- Introduction to Computing- Lecture 35
CS101- Introduction to Computing- Lecture 35
 
Early exploring design alterna1ves of smart sensor so5ware with actors
Early exploring design alterna1ves of smart sensor so5ware with actorsEarly exploring design alterna1ves of smart sensor so5ware with actors
Early exploring design alterna1ves of smart sensor so5ware with actors
 
1183 c-interview-questions-and-answers
1183 c-interview-questions-and-answers1183 c-interview-questions-and-answers
1183 c-interview-questions-and-answers
 
Javascript.ppt
Javascript.pptJavascript.ppt
Javascript.ppt
 
Object Oriented Technologies
Object Oriented TechnologiesObject Oriented Technologies
Object Oriented Technologies
 
Functional Patterns for C++ Multithreading (C++ Dev Meetup Iasi)
Functional Patterns for C++ Multithreading (C++ Dev Meetup Iasi)Functional Patterns for C++ Multithreading (C++ Dev Meetup Iasi)
Functional Patterns for C++ Multithreading (C++ Dev Meetup Iasi)
 
Systematic Generation Data and Types in C++
Systematic Generation Data and Types in C++Systematic Generation Data and Types in C++
Systematic Generation Data and Types in C++
 
Designing Architecture-aware Library using Boost.Proto
Designing Architecture-aware Library using Boost.ProtoDesigning Architecture-aware Library using Boost.Proto
Designing Architecture-aware Library using Boost.Proto
 
Oop2011 actor presentation_stal
Oop2011 actor presentation_stalOop2011 actor presentation_stal
Oop2011 actor presentation_stal
 
GRAPHICAL STRUCTURES in our lives
GRAPHICAL STRUCTURES in our livesGRAPHICAL STRUCTURES in our lives
GRAPHICAL STRUCTURES in our lives
 
C++ Interview Question And Answer
C++ Interview Question And AnswerC++ Interview Question And Answer
C++ Interview Question And Answer
 
C++ questions And Answer
C++ questions And AnswerC++ questions And Answer
C++ questions And Answer
 
Apache Flink: API, runtime, and project roadmap
Apache Flink: API, runtime, and project roadmapApache Flink: API, runtime, and project roadmap
Apache Flink: API, runtime, and project roadmap
 
Introduction to Akka - Atlanta Java Users Group
Introduction to Akka - Atlanta Java Users GroupIntroduction to Akka - Atlanta Java Users Group
Introduction to Akka - Atlanta Java Users Group
 

Recently uploaded

Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Dr.Costas Sachpazis
 
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVHARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVRajaP95
 
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICSHARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICSRajkumarAkumalla
 
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
Porous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingPorous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingrakeshbaidya232001
 
Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxAsutosh Ranjan
 
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024hassan khalil
 
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)Suman Mia
 
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...srsj9000
 
Introduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxIntroduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxupamatechverse
 
Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations120cr0395
 
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escortsranjana rawat
 
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...ranjana rawat
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxJoão Esperancinha
 
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
main PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidmain PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidNikhilNagaraju
 

Recently uploaded (20)

Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
 
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVHARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
 
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICSHARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
 
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
 
Porous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingPorous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writing
 
Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptx
 
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024
 
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
 
Roadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and RoutesRoadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and Routes
 
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)
 
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
 
Introduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxIntroduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptx
 
Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations
 
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
 
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
 
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
 
main PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidmain PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfid
 

Actor, an elegant model for concurrent and distributed computation