1 Organizare
2 / 43
Organizare
3 / 43
Instructor
Denisa Diaconescu
https://sites.google.com/site/denisadiaconescu/
ddiaconescu [at] fmi.unibuc.ro
denisa.diaconescu [at] gmail.com
4 / 43
Suport curs
Moodle
https://sites.google.com/view/dai2017/home
sau
https://goo.gl/QX9HU0
5 / 43
Bibliografie
6 / 43
Notare
Seminar: 30 puncte
Proiect: 30 puncte
Examen: 40 puncte
7 / 43
Notare seminar
Reading seminar
8 / 43
Notare seminar
Notare
Prezentare: 20 puncte
Prezenţă la reading seminar: 10 puncte
9 / 43
Proiect
Proiect: 30 puncte
10 / 43
Examen
Examen: 40 puncte
Cu materialele pe bancă
11 / 43
Restanţă
12 / 43
Calcul interactiv – privire de ansamblu
13 / 43
Aţi văzut acest film?
14 / 43
Alan Turing
15 / 43
(Grigore C. Moisil)
16 / 43
Maşina Turing
17 / 43
Teza Church-Turing [1937]
[Knuth]
Algoritmii sunt transformări bazate pe funcţii ı̂ntre intrări şi ieşiri.
18 / 43
Teza Church-Turing reinterpretată [’60]
19 / 43
Teza Church-Turing reinterpretată [’60]
20 / 43
Limitările maşinilor Turing/algoritmilor
maşina trebuie să observe condiţiile de drum, maşinile din jurul ei,
semafoarele etc.
21 / 43
Limitările maşinilor Turing/algoritmilor
Exemple:
22 / 43
Maşini interactive
23 / 43
Maşini Turing vs. maşini interactive
Maşina Turing
sistem ı̂nchis
primeşte o intrare pe bandă, incepe să calculeze, şi se opreşte (ı̂n
cazul fericit), iar banda de ieşire conţine rezultatul
la fiecare pas, maşina Turing depinde doar de starea sa internă şi de
simbolul curent de pe bandă
Maşina interactivă
trebuie să fie un sistem deschis
extensie a maşinii Turing care să poată interacţiona cu mediul din
jurul său prin noi acţiuni de intrare/ieşire
24 / 43
Calcule interactive
25 / 43
Calcule interactive
25 / 43
Concurenţă şi actori
26 / 43
Concurenţa
27 / 43
Modelul cu actori
28 / 43
Implementări
29 / 43
Actori
30 / 43
Actori
31 / 43
Modelul cu actori
32 / 43
Mailbox
33 / 43
Mailbox
34 / 43
Ce fac actorii?
35 / 43
Poate specifica ce să facă cu următorul mesaj
36 / 43
Toleranţa faţă de erori
37 / 43
Toleranţa faţă de erori
Orice cod este rulat ı̂ntr-un proces (aşa apelează Erlang actorii).
Acest proces este complet izolat; starea sa nu influenţează niciun alt
proces.
Există un proces numit supraveghetor care va fi ı̂nştiinţat când
procesul supravegheat se blochează şi care poate face ceva ı̂n acel
caz.
Astfel, se pot crea sisteme care ”se vindecă singure”.
Dacă un actor ajunge ı̂ntr-o stare critică şi se blochează din diferite
motive, un supraveghetor poate readuce actorul ı̂ntr-o stare sigură.
Există mai multe strategii pentru supraveghetor. De exemplu, poate
restarta actorul la starea sa iniţială.
38 / 43
Distribution
39 / 43
Recomandare
40 / 43
Proiecte
41 / 43
Proiecte
Cerinţe obligatorii:
1 Aplicaţia trebuie să conţină cel puţin 10 actori din lista de mai sus,
din care cel puţin unul să fie Supervisor şi cel puţin unul să fie
Application.
2 Aplicaţia trebuie să conţină un bug care obligă un actor să se
blocheze şi să fie repornit de supervisor.
42 / 43
Pe săptămâna viitoare!
43 / 43