Paradigme de Programare

Mărimea: px
Porniți afișarea la pagina:

Download "Paradigme de Programare"

Transcriere

1 Paradigme de Programare Conf. dr. ing. Andrei Olaru Departamentul de Calculatoare : 1 / 60

2 Cursul 3 Calcul Lambda 3 : 2 / 60

3 Cursul 3: Calcul Lambda 1 Introducere 2 Lambda-expresii 3 Reducere 4 Evaluare 5 Limbajul lambda-0 și incursiune în TDA 6 Racket vs. lambda-0 3 : 3 / 60

4 Introducere 3 : 4 / 60

5 Modele de calculabilitate De ce? ne punem problema dacă putem realiza un calcul sau nu pentru a demonstra trebuie să avem un model simplu al calculului (cum realizăm calculul, în mod formal). un model de calculabilitate trebuie să fie cât mai simplu, atât ca număr de operații disponibile cât și ca mode de construcție a valorilor. corectitudinea unui program se demonstrează mai ușor dacă limbajul de programare este mai apropiat de mașina teoretică (modelul abstract de calculabilitate). 3 : 5 / 60

6 Calculul Lambda λ Model de calculabilitate (Alonzo Church, 1932) introdus în cadrul cercetărilor asupra fundamentelor matematicii. [ sistem formal pentru exprimarea calculului. Echivalent cu Mașina Turing (v. Teza Church-Turing) Axat pe conceptul matematic de funcție totul este o funcție 3 : 6 / 60

7 Aplicații ale calculului λ Aplicații importante în programare demonstrarea formală a corectitudinii programelor, datorită modelului simplu de execuție Baza teoretică a numeroase limbaje: LISP, Scheme, Haskell, ML, F#, Clean, Clojure, Scala, Erlang etc. 3 : 7 / 60

8 Lambda-expresii 3 : 8 / 60

9 λ-expresii Exemple 1 x variabila (numele) x Ex Exemplu 2 λ x.x funcția identitate 3 λx.λy.x funcție selector 4 (λ x.x y) aplicația funcției identitate asupra parametrului actual y 5 (λx.(x x) λx.x)? 3 : 9 / 60

10 λ-expresii Exemple 1 x variabila (numele) x Ex Exemplu 2 λ x.x funcția identitate 3 λx.λy.x funcție selector 4 (λ x.x y) aplicația funcției identitate asupra parametrului actual y 5 (λx.(x x) λx.x)? 3 : 9 / 60

11 λ-expresii Exemple 1 x variabila (numele) x Ex Exemplu 2 λ x.x funcția identitate 3 λx.λy.x funcție selector 4 (λ x.x y) aplicația funcției identitate asupra parametrului actual y 5 (λx.(x x) λx.x)? 3 : 9 / 60

12 λ-expresii Exemple 1 x variabila (numele) x Ex Exemplu 2 λ x.x funcția identitate 3 λx.λy.x funcție selector 4 (λ x.x y) aplicația funcției identitate asupra parametrului actual y 5 (λx.(x x) λx.x)? 3 : 9 / 60

13 λ-expresii Exemple 1 x variabila (numele) x Ex Exemplu 2 λ x.x funcția identitate 3 λx.λy.x funcție selector 4 (λ x.x y) aplicația funcției identitate asupra parametrului actual y 5 (λx.(x x) λx.x)? 3 : 9 / 60

14 λ-expresii Exemple 1 x variabila (numele) x Ex Exemplu 2 λ x.x funcția identitate 3 λx.λy.x funcție selector 4 (λ x.x y) aplicația funcției identitate asupra parametrului actual y 5 (λx.(x x) λx.x)? Intuitiv, evaluarea aplicației (λ x.x y) presupune substituția textuală a lui x, în corp, prin y rezultat y. 3 : 9 / 60

15 λ-expresii Definiție + λ-expresie Variabilă: o variabilă x este o λ-expresie; Funcție: dacă x este o variabilă și E este o λ-expresie, atunci λ x.e este o λ-expresie, reprezentând funcția anonimă, unară, cu parametrul formal x și corpul E; Aplicație: dacă F și A sunt λ-expresii, atunci (F A) este o λ-expresie, reprezentând aplicația expresiei F asupra parametrului actual A. 3 : 10 / 60

16 Evaluare Intuitiv ((λx.λy.x z) t) 3 : 11 / 60

17 Evaluare Intuitiv ( ( λx.λy.x z ) t) parametru formal parametru actual 3 : 11 / 60

18 Evaluare Intuitiv ( ( λx.λy.x z ) t) substituție (λy.z t) parametru formal parametru actual 3 : 11 / 60

19 Evaluare Intuitiv ( ( λx.λy.x z ) t) substituție ( λy.z t ) parametru formal parametru actual parametru formal parametru actual 3 : 11 / 60

20 Evaluare Intuitiv ( ( λx.λy.x z ) t) substituție ( λy.z t ) substituție z parametru formal parametru actual parametru formal parametru actual 3 : 11 / 60

21 Evaluare Intuitiv ( ( λx.λy.x z ) t) substituție ( λy.z t ) substituție z nu mai este nicio funcție de aplicat parametru formal parametru actual parametru formal parametru actual 3 : 11 / 60

22 Evaluare Intuitiv ( ( λx.λy.x z ) t) substituție ( λy.z t ) substituție z nu mai este nicio funcție de aplicat parametru formal parametru actual parametru formal parametru actual cum știm ce reducem, cum reducem, în ce ordine, și ce apariții ale variabilelor înlocuim? 3 : 11 / 60

23 Reducere 3 : 12 / 60

24 β-redex Cum arată (Formal, vedem mai târziu) β-redex: o λ-expresie de forma: (λx.e A) E λ-expresie este corpul funcției A λ-expresie este parametrul actual β-redexul se reduce la E [A/x] E cu toate aparițiile libere ale lui x din E înlocuite cu A prin substituție textuală. 3 : 13 / 60

25 Apariții ale variabilelor Legate vs libere + Apariție legată O apariție x n a unei variabile x este legată într-o expresie E dacă: E = λx.f sau E =... λx n.f... sau E =... λx.f... și x n apare în F. + Apariție liberă O apariție a unei variabile este liberă într-o expresie dacă nu este legată în acea expresie. Atenție! În raport cu o expresie dată! 3 : 14 / 60

26 Apariții ale variabilelor Mod de gândire O apariție legată în expresie este o apariție a parametrului formal al unei funcții definite în expresie, în corpul funcției; o apariție liberă este o apariție a parametrului formal al unei funcții definite în exteriorul expresiei, sau nu este parametru formal al niciunei funcții. x (λy. x λ x <2> apariție liberă z) apariție încă liberă, nu o leagă nimeni.(λy. x (λ x.(λy. x z) <2> }{{} corp λx 2 λ x.(λ x.(λy. x z) λ x leagă apariția x <2> x ) <3> z) x apariția x 3 este liberă este în exteriorul corpului funcției cu parametrul formal x (λx 2 ) ) λ x leagă apariția x <4> <3> <4> <2> <3> 3 : 15 / 60

27 Apariții ale variabilelor Mod de gândire O apariție legată în expresie este o apariție a parametrului formal al unei funcții definite în expresie, în corpul funcției; o apariție liberă este o apariție a parametrului formal al unei funcții definite în exteriorul expresiei, sau nu este parametru formal al niciunei funcții. x (λy. x λ x <2> apariție liberă z) apariție încă liberă, nu o leagă nimeni.(λy. x (λ x.(λy. x z) <2> }{{} corp λx 2 λ x.(λ x.(λy. x z) λ x leagă apariția x <2> x ) <3> z) x apariția x 3 este liberă este în exteriorul corpului funcției cu parametrul formal x (λx 2 ) ) λ x leagă apariția x <4> <3> <4> <2> <3> 3 : 15 / 60

28 Apariții ale variabilelor Mod de gândire O apariție legată în expresie este o apariție a parametrului formal al unei funcții definite în expresie, în corpul funcției; o apariție liberă este o apariție a parametrului formal al unei funcții definite în exteriorul expresiei, sau nu este parametru formal al niciunei funcții. x (λy. x λ x <2> apariție liberă z) apariție încă liberă, nu o leagă nimeni.(λy. x (λ x.(λy. x z) <2> }{{} corp λx 2 λ x.(λ x.(λy. x z) λ x leagă apariția x <2> x ) <3> z) x apariția x 3 este liberă este în exteriorul corpului funcției cu parametrul formal x (λx 2 ) ) λ x leagă apariția x <4> <3> <4> <2> <3> 3 : 15 / 60

29 Apariții ale variabilelor Mod de gândire O apariție legată în expresie este o apariție a parametrului formal al unei funcții definite în expresie, în corpul funcției; o apariție liberă este o apariție a parametrului formal al unei funcții definite în exteriorul expresiei, sau nu este parametru formal al niciunei funcții. x (λy. x λ x <2> apariție liberă z) apariție încă liberă, nu o leagă nimeni.(λy. x (λ x.(λy. x z) <2> }{{} corp λx 2 λ x.(λ x.(λy. x z) λ x leagă apariția x <2> x ) <3> z) x apariția x 3 este liberă este în exteriorul corpului funcției cu parametrul formal x (λx 2 ) ) λ x leagă apariția x <4> <3> <4> <2> <3> 3 : 15 / 60

30 Apariții ale variabilelor Mod de gândire O apariție legată în expresie este o apariție a parametrului formal al unei funcții definite în expresie, în corpul funcției; o apariție liberă este o apariție a parametrului formal al unei funcții definite în exteriorul expresiei, sau nu este parametru formal al niciunei funcții. x (λy. x λ x <2> apariție liberă z) apariție încă liberă, nu o leagă nimeni.(λy. x (λ x.(λy. x z) <2> }{{} corp λx 2 λ x.(λ x.(λy. x z) λ x leagă apariția x <2> x ) <3> z) x apariția x 3 este liberă este în exteriorul corpului funcției cu parametrul formal x (λx 2 ) ) λ x leagă apariția x <4> <3> <4> <2> <3> 3 : 15 / 60

31 Variabile Legate vs libere + O variabilă este legată într-o expresie dacă toate aparițiile sale sunt legate în acea expresie. + O variabilă este liberă într-o expresie dacă nu este legată în acea expresie i.e. dacă cel puțin o apariție a sa este liberă în acea expresie. Atenție! În raport cu o expresie dată! 3 : 16 / 60

32 Variabile și Apariții ale lor Exemplu 1 Ex Exemplu În expresia E = (λx.x x), evidențiem aparițiile lui x: (λ x ). x x <3> x <2> x. x <2> }{{} F, x <2> x <3> în E în F! în E și F în E 3 : 17 / 60

33 Variabile și Apariții ale lor Exemplu 1 Ex Exemplu În expresia E = (λx.x x), evidențiem aparițiile lui x: (λ x ). x x <3> x <2> x. x <2> }{{} F, x <2> x <3> legate în E în E în F! în E și F 3 : 17 / 60

34 Variabile și Apariții ale lor Exemplu 1 Ex Exemplu În expresia E = (λx.x x), evidențiem aparițiile lui x: (λ x ). x x <3> x <2> x. x <2> }{{} F x <3>, x <2> liberă în E legate în E în F! în E și F 3 : 17 / 60

35 Variabile și Apariții ale lor Exemplu 1 Ex Exemplu În expresia E = (λx.x x), evidențiem aparițiile lui x: (λ x ). x x <3> x <2> x. x <2> }{{} F x <3>, x <2> liberă în E legate în E liberă în F! în E și F 3 : 17 / 60

36 Variabile și Apariții ale lor Exemplu 1 Ex Exemplu În expresia E = (λx.x x), evidențiem aparițiile lui x: (λ x ). x x <3> x <2>. x <2> }{{} F x <3>, x <2> liberă în E legate în E liberă în F! x liberă în E și F 3 : 17 / 60

37 Ex Exemplu Variabile și apariții ale lor Exemplu 2 În expresia E = (λx.λz.(z x) (z y)), evidențiem aparițiile: (λ x.λ z.( z x ) ( z )). <3> <2> <2> } {{ } F, z x, x <2> y z x <2>, z <3>, z <2>, z în F <2> în E în F y în E x în E, în F y în E z în E, în F 3 : 18 / 60

38 Ex Exemplu Variabile și apariții ale lor Exemplu 2 În expresia E = (λx.λz.(z x) (z y)), evidențiem aparițiile: (λ x.λ z.( z x ) ( z )). <3> <2> <2> } {{ } F, z x, x <2> y z x <2>, z <3>, z <2>, z în F <2> în E în F y legate în E x în E, în F y în E z în E, în F 3 : 18 / 60

39 Ex Exemplu Variabile și apariții ale lor Exemplu 2 În expresia E = (λx.λz.(z x) (z y)), evidențiem aparițiile: (λ x.λ z.( z x ) ( z )). <3> <2> <2> } {{ } F, z x, x <2> y z x <2>, z <3>, z <2>, z <2> libere în E în F în F y legate în E x în E, în F y în E z în E, în F 3 : 18 / 60

40 Ex Exemplu Variabile și apariții ale lor Exemplu 2 În expresia E = (λx.λz.(z x) (z y)), evidențiem aparițiile: (λ x.λ z.( z x ) ( z )). <3> <2> <2> } {{ } F, z x, x <2> y z x <2>, z <3>, z <2>, z <2> libere în E legate în F în F y legate în E x în E, în F y în E z în E, în F 3 : 18 / 60

41 Ex Exemplu Variabile și apariții ale lor Exemplu 2 În expresia E = (λx.λz.(z x) (z y)), evidențiem aparițiile: (λ x.λ z.( z x ) ( z )). <3> <2> <2> } {{ } F, z x, x <2> y z x <2>, z <3>, z <2>, z <2> libere în E legate în F liberă în F y legate în E x în E, în F y în E z în E, în F 3 : 18 / 60

42 Ex Exemplu Variabile și apariții ale lor Exemplu 2 În expresia E = (λx.λz.(z x) (z y)), evidențiem aparițiile: (λ x.λ z.( z x ) ( z )). <3> <2> <2> } {{ } F, z x, x <2> y z x <2>, z <3>, z <2>, z <2> libere în E legate în F liberă în F y legate în E x legată în E, dar liberă în F y în E z în E, în F 3 : 18 / 60

43 Ex Exemplu Variabile și apariții ale lor Exemplu 2 În expresia E = (λx.λz.(z x) (z y)), evidențiem aparițiile: (λ x.λ z.( z x ) ( z )). <3> <2> <2> } {{ } F, z x, x <2> y z x <2>, z <3>, z <2>, z <2> libere în E legate în F liberă în F y legate în E x legată în E, dar liberă în F y liberă în E z în E, în F 3 : 18 / 60

44 Ex Exemplu Variabile și apariții ale lor Exemplu 2 În expresia E = (λx.λz.(z x) (z y)), evidențiem aparițiile: (λ x.λ z.( z x ) ( z )). <3> <2> <2> } {{ } F, z x, x <2> y z x <2>, z <3>, z <2>, z <2> libere în E legate în F liberă în F y legate în E x legată în E, dar liberă în F y liberă în E z liberă în E, dar legată în F 3 : 18 / 60

45 Determinarea variabilelor libere și legate O abordare formală Variabile libere (free variables) FV (x) = {x} FV (λx.e) = FV (E) \ {x} FV ((E 1 E 2 )) = FV (E 1 ) FV (E 2 ) Variabile legate (bound variables) BV (x) = /0 BV (λx.e) = BV (E) {x} BV ((E 1 E 2 )) = BV (E 1 ) \ FV (E 2 ) BV (E 2 ) \ FV (E 1 ) 3 : 19 / 60

46 Expresii închise + O expresie închisă este o expresie care nu conține variabile libere. Ex Exemplu (λx.x λx.λy.x) (λx.x a) Variabilele libere dintr-o λ-expresie pot sta pentru alte λ-expresii Înaintea evaluării, o expresie trebuie adusă la forma închisă. Procesul de înlocuire trebuie să se termine. 3 : 20 / 60

47 Expresii închise + O expresie închisă este o expresie care nu conține variabile libere. Ex Exemplu (λx.x λx.λy.x) închisă (λx.x a) Variabilele libere dintr-o λ-expresie pot sta pentru alte λ-expresii Înaintea evaluării, o expresie trebuie adusă la forma închisă. Procesul de înlocuire trebuie să se termine. 3 : 20 / 60

48 Expresii închise + O expresie închisă este o expresie care nu conține variabile libere. Ex Exemplu (λx.x λx.λy.x) închisă (λ x.x a) deschisă, deoarece a este liberă Variabilele libere dintr-o λ-expresie pot sta pentru alte λ-expresii Înaintea evaluării, o expresie trebuie adusă la forma închisă. Procesul de înlocuire trebuie să se termine. 3 : 20 / 60

49 β-reducere Definiție + β-reducere: Evaluarea expresiei (λx.e A), cu E și A λ-expresii, prin substituirea textuală a tuturor aparițiilor libere ale parametrului formal al funcției, x, din corpul acesteia, E, cu parametrul actual, A: (λx.e A) β E [A/x] + β-redex Expresia (λx.e A), cu E și A λ-expresii o expresie pe care se poate aplica β-reducerea. 3 : 21 / 60

50 β-reducere Exemple (λx.x y) β x [y/x] y Ex (λx.λx.x y) Exemplu (λx.λy.x y) 3 : 22 / 60

51 β-reducere Exemple (λx.x y) β x [y/x] y Ex (λx.λx.x y) β λx.x [y/x] λx.x Exemplu (λx.λy.x y) 3 : 22 / 60

52 β-reducere Exemple (λx.x y) β x [y/x] y Ex (λx.λx.x y) β λx.x [y/x] λx.x Exemplu (λx.λy.x y) β λy.x [y/x] λy.y 3 : 22 / 60

53 β-reducere Exemple (λx.x y) β x [y/x] y Ex (λx.λx.x y) β λx.x [y/x] λx.x Exemplu (λx.λy.x y) β λy.x [y/x] λy.y Greșit! Variabila liberă y devine legată, schimbându-și semnificația. λy (a).y (b) 3 : 22 / 60

54 β-reducere Exemple (λx.x y) β x [y/x] y Ex (λx.λx.x y) β λx.x [y/x] λx.x Exemplu (λx.λy.x y) β λy.x [y/x] λy.y Greșit! Variabila liberă y devine legată, schimbându-și semnificația. λy (a).y (b) Care este problema? 3 : 22 / 60

55 β-reducere Coliziuni Problemă: în expresia (λ x.e A): dacă variabilele libere din A nu au nume comune cu variabilele legate din E: FV(A) BV(E) = /0 reducere întotdeauna corectă dacă există variabilele libere din A care au nume comune cu variabilele legate din E: FV(A) BV(E) /0 reducere potențial greșită Soluție: redenumirea variabilelor legate din E, ce coincid cu cele libere din A α-conversie. 3 : 23 / 60

56 β-reducere Coliziuni Problemă: în expresia (λ x.e A): dacă variabilele libere din A nu au nume comune cu variabilele legate din E: FV(A) BV(E) = /0 reducere întotdeauna corectă dacă există variabilele libere din A care au nume comune cu variabilele legate din E: FV(A) BV(E) /0 reducere potențial greșită Soluție: redenumirea variabilelor legate din E, ce coincid cu cele libere din A α-conversie. Ex Exemplu (λx.λy.x y) α (λx.λz.x y) β λz.x [y/x] λz.y 3 : 23 / 60

57 α-conversie Definiție + α-conversie: Redenumirea sistematică a variabilelor legate dintr-o funcție: λx.e α λy.e [y/x]. Se impun două condiții. Ex Exemplu λx.y α λy.y [y/x] λy.y λx.λy.x α λy.λy.x [y/x] λy.λy.y 3 : 24 / 60

58 α-conversie Definiție + α-conversie: Redenumirea sistematică a variabilelor legate dintr-o funcție: λx.e α λy.e [y/x]. Se impun două condiții. Ex Exemplu λx.y α λy.y [y/x] λy.y Greșit! λx.λy.x α λy.λy.x [y/x] λy.λy.y 3 : 24 / 60

59 α-conversie Definiție + α-conversie: Redenumirea sistematică a variabilelor legate dintr-o funcție: λx.e α λy.e [y/x]. Se impun două condiții. Ex Exemplu λx.y α λy.y [y/x] λy.y Greșit! λx.λy.x α λy.λy.x [y/x] λy.λy.y Greșit! 3 : 24 / 60

60 α-conversie Definiție + α-conversie: Redenumirea sistematică a variabilelor legate dintr-o funcție: λx.e α λy.e [y/x]. Se impun două condiții. Ex Exemplu λx.y α λy.y [y/x] λy.y Greșit! λx.λy.x α λy.λy.x [y/x] λy.λy.y Greșit!. Condiții y nu este o variabilă liberă, existentă deja în E orice apariție liberă în E rămâne liberă în E [y/x] 3 : 24 / 60

61 α-conversie Exemple λx.(x y) α λz.(z y) Corect! Ex λx.λx.(x y) α λy.λx.(x y) Exemplu λx.λy.(y x) α λy.λy.(y y) λx.λy.(y y) α λy.λy.(y y) 3 : 25 / 60

62 α-conversie Exemple λx.(x y) α λz.(z y) Corect! Ex λx.λx.(x y) α λy.λx.(x y) Greșit! y este liberă în λx.(x y) Exemplu λx.λy.(y x) α λy.λy.(y y) λx.λy.(y y) α λy.λy.(y y) 3 : 25 / 60

63 α-conversie Exemple λx.(x y) α λz.(z y) Corect! Ex λx.λx.(x y) α λy.λx.(x y) Greșit! y este liberă în λx.(x y) Exemplu λx.λy.(y x) α λy.λy.(y y) Greșit! Apariția liberă a lui x din λy.(y x) devine legată, după substituire, în λy.(y y) λx.λy.(y y) α λy.λy.(y y) 3 : 25 / 60

64 α-conversie Exemple λx.(x y) α λz.(z y) Corect! Ex λx.λx.(x y) α λy.λx.(x y) Greșit! y este liberă în λx.(x y) Exemplu λx.λy.(y x) α λy.λy.(y y) Greșit! Apariția liberă a lui x din λy.(y x) devine legată, după substituire, în λy.(y y) λx.λy.(y y) α λy.λy.(y y) Corect! 3 : 25 / 60

65 Reducere Definiții + Pas de reducere: O secvență formată dintr-o α-conversie și o β-reducere, astfel încât a doua se produce fără coliziuni: E 1 E 2 E 1 α E 3 β E 2. + Secvență de reducere: Succesiune de zero sau mai mulți pași de reducere: E 1 E 2. Reprezintă un element din închiderea reflexiv-tranzitivă a relației. 3 : 26 / 60

66 Reducere Proprietăți. Reducere E 1 E 2 = E 1 E 2 un pas este o secvență E E zero pași formează o secvență E 1 E 2 E 2 E 3 E 1 E 3 tranzitivitate Ex Exemplu ((λx.λy.((y x) y) λx.x) (λz.(z y) λx.x) (λx.x y) y ((λx.λy.((y x) y) λx.x) y 3 : 27 / 60

67 Evaluare 3 : 28 / 60

68 Întrebări Pentru construcția unei mașini de calcul Dacă am vrea să construim o mașină de calcul care să aibă ca program o λ-expresie și să aibă ca operație de bază pasul de reducere, ne punem câteva întrebări: 1 Când se termină calculul? Se termină întotdeauna? 2 Dacă mai multe secvențe de reducere se termină, obținem întotdeauna același rezultat? 3 Comportamentul depinde de secvența de reducere? 4 Dacă rezultatul este unic, cum îl obținem? 3 : 29 / 60

69 Terminarea reducerii (reductibilitate) Exemplu și definiție Ex Exemplu Ω = (λx.(x x) λx.(x x)) (λx.(x x) λx.(x x))... Ω nu admite nicio secvență de reducere care se termină. 3 : 30 / 60

70 Terminarea reducerii (reductibilitate) Exemplu și definiție Ex Exemplu Ω = (λx.(x x) λx.(x x)) (λx.(x x) λx.(x x))... Ω nu admite nicio secvență de reducere care se termină. + Expresie reductibilă este o expresie care admite (cel puțin o) secvență de reducere care se termină. expresia Ω nu este reductibilă. 3 : 30 / 60

71 Secvențe de reducere și terminare Dar! Ex Exemplu E = (λx.y Ω) y sau E y sau E E y sau n y, n : 31 / 60

72 Secvențe de reducere și terminare Dar! Ex Exemplu E = (λx.y Ω) y sau E y sau E E y sau n y, n 0... E are o secvență de reducere care nu se termină; dar E are forma normală y E este reductibilă; lungimea secvențelor de reducere ale E este nemărginită. 3 : 31 / 60

73 Forme normale Cum știm că s-a terminat calculul? Calculul se termină atunci când expresia nu mai poate fi redusă expresia nu mai conține β-redecși. + Forma normală a unei expresii este o formă (la care se ajunge prin reducere, care nu mai conține β-redecși i.e. care nu mai poate fi redusă. 3 : 32 / 60

74 Forme normale Este necesar să mergem până la Forma Normală? + Forma normală funcțională FNF este o formă λx.f, în care F poate conține β-redecși. Ex Exemplu (λx.λy.(x y) λx.x) FNF λy.(λx.x y) FN λy.y FN a unei expresii închise este în mod necesar FNF. într-o FNF nu există o necesitate imediată de a evalua eventualii β-redecși interiori (funcția nu a fost încă aplicată). 3 : 33 / 60

75 Unicitatea formei normale Rezultate T Teorema Church-Rosser / diamantului Dacă E E 1 și E E 2, atunci există E 3 astfel încât E 1 E 3 și E 2 E 3. E E 1 E 2 E 3 C Corolar Dacă o expresie este reductibilă, forma ei normală este unică. Ea corespunde valorii expresiei. 3 : 34 / 60

76 Unicitatea formei normale Exemplu Ex (λx.λy.(x y) (λx.x y)) Exemplu λz.((λx.x y) z) λz.(y z) α λa.(y a) (λx.λy.(x y) y) λw.(y w) α λa.(y a) 3 : 35 / 60

77 Unicitatea formei normale Exemplu Ex (λx.λy.(x y) (λx.x y)) Exemplu λz.((λx.x y) z) λz.(y z) α λa.(y a) (λx.λy.(x y) y) λw.(y w) α λa.(y a) 3 : 35 / 60

78 Unicitatea formei normale Exemplu Ex (λx.λy.(x y) (λx.x y)) Exemplu λz.((λx.x y) z) λz.(y z) α λa.(y a) (λx.λy.(x y) y) λw.(y w) α λa.(y a) Forma normală corespunde unei clase de expresii, echivalente sub redenumiri sistematice. Valoarea este un anumit membru al acestei clase de echivalență. Valorile sunt echivalente în raport cu redenumirea. 3 : 35 / 60

79 Modalități de reducere Cum putem organiza reducerea? + Reducere stânga-dreapta: Reducerea celui mai superficial și mai din stânga β-redex. Ex Exemplu ((λx.x λx.y) (λx.(x x) λx.(x x))) (λx.y Ω) y + Reducere dreapta-stânga: Reducerea celui mai adânc și mai din dreapta β-redex. Ex Exemplu (λx.(λx.x λx.y) (λx.(x x) λx.(x x))) (λx.(λx.x λx.y) Ω)... 3 : 36 / 60

80 Ce modalitate alegem? T Teorema normalizării Dacă o expresie este reductibilă, evaluarea stânga-dreapta a acesteia se termină. Teorema normalizării (normalizare = aducere la forma normală) nu garantează terminarea evaluării oricărei expresii, ci doar a celor reductibile! Dacă expresia este ireductibilă, nicio reducere nu se va termina. 3 : 37 / 60

81 Răspunsuri la întrebări 1 Când se termină calculul? Se termină întotdeauna? se termină cu forma normală [funcțională]. NU se termină decât dacă expresia este reductibilă. 2 Comportamentul depinde de secvența de reducere? DA. 3 Dacă mai multe secvențe de reducere se termină, obținem întotdeauna același rezultat? DA. 4 Dacă rezultatul este unic, cum îl obținem? Reducere stânga-dreapta. 5 Care este valoarea expresiei? Forma normală [funcțională] (FN[F]). 3 : 38 / 60

82 Ordine de evaluare Tipuri + Evaluare aplicativă (eager) corespunde unei reduceri mai degrabă dreapta-stânga. Parametrii funcțiilor sunt evaluați înaintea aplicării funcției. + Evaluare normală (lazy) corespunde reducerii stânga-dreapta. Parametrii funcțiilor sunt evaluați la cerere. + Funcție strictă funcție cu evaluare aplicativă. + Funcție nestrictă funcție cu evaluare normală. 3 : 39 / 60

83 Ordine de evaluare În practică Evaluarea aplicativă prezentă în majoritatea limbajelor: C, Java, Scheme, PHP etc. Ex Exemplu (+ (+ 2 3) (* 2 3)) (+ 5 6) 11 Nevoie de funcții nestricte, chiar în limbajele aplicative: if, and, or etc. Ex Exemplu (if (< 2 3) (+ 2 3) (* 2 3)) (< 2 3) #t (+ 2 3) 5 3 : 40 / 60

84 Limbajul lambda-0 și incursiune în TDA 3 : 41 / 60

85 Limbajul λ 0 Scop Am putea crea o mașină de calcul folosind calculul λ mașină de calcul ipotetică; Mașina folosește limbajul λ 0 calcul lambda; Programul λ-expresie; + Legări top-level de expresii la nume. Datele λ-expresii; Funcționarea mașinii reducere substituție textuală evaluare normală; terminarea evaluării cu forma normală funcțională; se folosesc numai expresii închise. 3 : 42 / 60

86 Tipuri de date Cum reprezentăm datele? Cum interpretăm valorile? Putem reprezenta toate datele prin funcții cărora, convențional, le dăm o semnificație abstractă. Ex Exemplu T def λx.λy.x F def λx.λy.y Pentru aceste tipuri de date abstracte (TDA) creăm operatori care transformă datele în mod coerent cu interpretarea pe care o dăm valorilor. Ex Exemplu not def λx.((x F ) T ) (not T ) (λx.((x F ) T ) T ) ((T F ) T ) F 3 : 43 / 60

87 TDA Definiție + Tip de date abstract TDA Model matematic al unei mulțimi de valori și al operațiilor valide pe acestea.. Componente constructori de bază: cum se generează valorile; operatori: ce se poate face cu acestea; axiome: cum lucrează operatorii / ce restricții există. 3 : 44 / 60

88 TDA Bool Specificare Constructori: T : F : Bool Bool Operatori: not : and : or : if : Bool Bool Bool 2 Bool Bool 2 Bool Bool A A A Axiome: not : not(t ) = F not(f ) = T and : and(t,a) = a and(f,a) = F or : or(t,a) = T or(f,a) = a if : if (T,a,b) = a if (F,a,b) = b 3 : 45 / 60

89 TDA Bool Specificare Constructori: T : F : Bool Bool Operatori: not : and : or : if : Bool Bool Bool 2 Bool Bool 2 Bool Bool A A A Axiome: not : not(t ) = F not(f ) = T and : and(t,a) = a and(f,a) = F or : or(t,a) = T or(f,a) = a if : if (T,a,b) = a if (F,a,b) = b 3 : 45 / 60

90 TDA Bool Specificare Constructori: T : F : Bool Bool Operatori: not : and : or : if : Bool Bool Bool 2 Bool Bool 2 Bool Bool A A A Axiome: not : not(t ) = F not(f ) = T and : and(t,a) = a and(f,a) = F or : or(t,a) = T or(f,a) = a if : if (T,a,b) = a if (F,a,b) = b 3 : 45 / 60

91 TDA Bool Implementarea constructorilor de bază Intuiție bazat pe comportamentul necesar pentru if: selecția între cele două valori T def λx.λy.x F def λx.λy.y 3 : 46 / 60

92 TDA Bool Implementarea operatorilor if def λc.λx.λy.((c x) y) and def λx.λy.((x y) F ) ((and T ) a) ((λx.λy.((x y) F ) T ) a) ((T a) F ) a ((and F ) a) ((λx.λy.((x y) F ) F ) a) ((F a) F ) F or def λx.λy.((x T ) y) ((or T ) a) ((λx.λy.((x T ) y) T ) a) ((T T ) a) T ((or F ) a) ((λx.λy.((x T ) y) F ) a) ((F T ) a) a not def λx.((x F ) T ) (not T ) (λx.((x F ) T ) T ) ((T F ) T ) F (not F ) (λx.((x F ) T ) F ) ((F F ) T ) T 3 : 47 / 60

93 TDA Bool Implementarea operatorilor if def λc.λx.λy.((c x) y) and def λx.λy.((x y) F ) ((and T ) a) ((λx.λy.((x y) F ) T ) a) ((T a) F ) a ((and F ) a) ((λx.λy.((x y) F ) F ) a) ((F a) F ) F or def λx.λy.((x T ) y) ((or T ) a) ((λx.λy.((x T ) y) T ) a) ((T T ) a) T ((or F ) a) ((λx.λy.((x T ) y) F ) a) ((F T ) a) a not def λx.((x F ) T ) (not T ) (λx.((x F ) T ) T ) ((T F ) T ) F (not F ) (λx.((x F ) T ) F ) ((F F ) T ) T 3 : 47 / 60

94 TDA Bool Implementarea operatorilor if def λc.λx.λy.((c x) y) and def λx.λy.((x y) F ) ((and T ) a) ((λx.λy.((x y) F ) T ) a) ((T a) F ) a ((and F ) a) ((λx.λy.((x y) F ) F ) a) ((F a) F ) F or def λx.λy.((x T ) y) ((or T ) a) ((λx.λy.((x T ) y) T ) a) ((T T ) a) T ((or F ) a) ((λx.λy.((x T ) y) F ) a) ((F T ) a) a not def λx.((x F ) T ) (not T ) (λx.((x F ) T ) T ) ((T F ) T ) F (not F ) (λx.((x F ) T ) F ) ((F F ) T ) T 3 : 47 / 60

95 TDA Bool Implementarea operatorilor if def λc.λx.λy.((c x) y) and def λx.λy.((x y) F ) ((and T ) a) ((λx.λy.((x y) F ) T ) a) ((T a) F ) a ((and F ) a) ((λx.λy.((x y) F ) F ) a) ((F a) F ) F or def λx.λy.((x T ) y) ((or T ) a) ((λx.λy.((x T ) y) T ) a) ((T T ) a) T ((or F ) a) ((λx.λy.((x T ) y) F ) a) ((F T ) a) a not def λx.((x F ) T ) (not T ) (λx.((x F ) T ) T ) ((T F ) T ) F (not F ) (λx.((x F ) T ) F ) ((F F ) T ) T 3 : 47 / 60

96 TDA Bool Implementarea operatorilor if def λc.λx.λy.((c x) y) and def λx.λy.((x y) F ) ((and T ) a) ((λx.λy.((x y) F ) T ) a) ((T a) F ) a ((and F ) a) ((λx.λy.((x y) F ) F ) a) ((F a) F ) F or def λx.λy.((x T ) y) ((or T ) a) ((λx.λy.((x T ) y) T ) a) ((T T ) a) T ((or F ) a) ((λx.λy.((x T ) y) F ) a) ((F T ) a) a not def λx.((x F ) T ) (not T ) (λx.((x F ) T ) T ) ((T F ) T ) F (not F ) (λx.((x F ) T ) F ) ((F F ) T ) T 3 : 47 / 60

97 TDA Bool Implementarea operatorilor if def λc.λx.λy.((c x) y) and def λx.λy.((x y) F ) ((and T ) a) ((λx.λy.((x y) F ) T ) a) ((T a) F ) a ((and F ) a) ((λx.λy.((x y) F ) F ) a) ((F a) F ) F or def λx.λy.((x T ) y) ((or T ) a) ((λx.λy.((x T ) y) T ) a) ((T T ) a) T ((or F ) a) ((λx.λy.((x T ) y) F ) a) ((F T ) a) a not def λx.((x F ) T ) (not T ) (λx.((x F ) T ) T ) ((T F ) T ) F (not F ) (λx.((x F ) T ) F ) ((F F ) T ) T 3 : 47 / 60

98 TDA Bool Implementarea operatorilor if def λc.λx.λy.((c x) y) and def λx.λy.((x y) F ) ((and T ) a) ((λx.λy.((x y) F ) T ) a) ((T a) F ) a ((and F ) a) ((λx.λy.((x y) F ) F ) a) ((F a) F ) F or def λx.λy.((x T ) y) ((or T ) a) ((λx.λy.((x T ) y) T ) a) ((T T ) a) T ((or F ) a) ((λx.λy.((x T ) y) F ) a) ((F T ) a) a not def λx.((x F ) T ) (not T ) (λx.((x F ) T ) T ) ((T F ) T ) F (not F ) (λx.((x F ) T ) F ) ((F F ) T ) T 3 : 47 / 60

99 TDA Bool Implementarea operatorilor if def λc.λx.λy.((c x) y) and def λx.λy.((x y) F ) ((and T ) a) ((λx.λy.((x y) F ) T ) a) ((T a) F ) a ((and F ) a) ((λx.λy.((x y) F ) F ) a) ((F a) F ) F or def λx.λy.((x T ) y) ((or T ) a) ((λx.λy.((x T ) y) T ) a) ((T T ) a) T ((or F ) a) ((λx.λy.((x T ) y) F ) a) ((F T ) a) a not def λx.((x F ) T ) (not T ) (λx.((x F ) T ) T ) ((T F ) T ) F (not F ) (λx.((x F ) T ) F ) ((F F ) T ) T 3 : 47 / 60

100 TDA Bool Implementarea operatorilor if def λc.λx.λy.((c x) y) and def λx.λy.((x y) F ) ((and T ) a) ((λx.λy.((x y) F ) T ) a) ((T a) F ) a ((and F ) a) ((λx.λy.((x y) F ) F ) a) ((F a) F ) F or def λx.λy.((x T ) y) ((or T ) a) ((λx.λy.((x T ) y) T ) a) ((T T ) a) T ((or F ) a) ((λx.λy.((x T ) y) F ) a) ((F T ) a) a not def λx.((x F ) T ) (not T ) (λx.((x F ) T ) T ) ((T F ) T ) F (not F ) (λx.((x F ) T ) F ) ((F F ) T ) T 3 : 47 / 60

101 TDA Bool Implementarea operatorilor if def λc.λx.λy.((c x) y) and def λx.λy.((x y) F ) ((and T ) a) ((λx.λy.((x y) F ) T ) a) ((T a) F ) a ((and F ) a) ((λx.λy.((x y) F ) F ) a) ((F a) F ) F or def λx.λy.((x T ) y) ((or T ) a) ((λx.λy.((x T ) y) T ) a) ((T T ) a) T ((or F ) a) ((λx.λy.((x T ) y) F ) a) ((F T ) a) a not def λx.((x F ) T ) (not T ) (λx.((x F ) T ) T ) ((T F ) T ) F (not F ) (λx.((x F ) T ) F ) ((F F ) T ) T 3 : 47 / 60

102 TDA Pair Implementare Intuiție: pereche funcție ce așteaptă selectorul, pentru a-l aplica asupra membrilor fst def λp.(p T ) (fst ((pair a) b)) (λp.(p T ) λz.((z a) b)) (λz.((z a) b) T ) ((T a) b) a snd def λp(f ) (snd ((pair a) b)) (λp.(p F ) λz.((z a) b)) (λz.((z a) b) F ) ((F a) b) b pair def λx.λy.λz.((z x) y) ((pair a) b) (λx.λy.λz.((z x) y)ab )λz.((z a) b) 3 : 48 / 60

103 TDA Pair Implementare Intuiție: pereche funcție ce așteaptă selectorul, pentru a-l aplica asupra membrilor fst def λp.(p T ) (fst ((pair a) b)) (λp.(p T ) λz.((z a) b)) (λz.((z a) b) T ) ((T a) b) a snd def λp(f ) (snd ((pair a) b)) (λp.(p F ) λz.((z a) b)) (λz.((z a) b) F ) ((F a) b) b pair def λx.λy.λz.((z x) y) ((pair a) b) (λx.λy.λz.((z x) y)ab )λz.((z a) b) 3 : 48 / 60

104 TDA Pair Implementare Intuiție: pereche funcție ce așteaptă selectorul, pentru a-l aplica asupra membrilor fst def λp.(p T ) (fst ((pair a) b)) (λp.(p T ) λz.((z a) b)) (λz.((z a) b) T ) ((T a) b) a snd def λp(f ) (snd ((pair a) b)) (λp.(p F ) λz.((z a) b)) (λz.((z a) b) F ) ((F a) b) b pair def λx.λy.λz.((z x) y) ((pair a) b) (λx.λy.λz.((z x) y)ab )λz.((z a) b) 3 : 48 / 60

105 TDA Pair Implementare Intuiție: pereche funcție ce așteaptă selectorul, pentru a-l aplica asupra membrilor fst def λp.(p T ) (fst ((pair a) b)) (λp.(p T ) λz.((z a) b)) (λz.((z a) b) T ) ((T a) b) a snd def λp(f ) (snd ((pair a) b)) (λp.(p F ) λz.((z a) b)) (λz.((z a) b) F ) ((F a) b) b pair def λx.λy.λz.((z x) y) ((pair a) b) (λx.λy.λz.((z x) y)ab )λz.((z a) b) 3 : 48 / 60

106 TDA Pair Implementare Intuiție: pereche funcție ce așteaptă selectorul, pentru a-l aplica asupra membrilor fst def λp.(p T ) (fst ((pair a) b)) (λp.(p T ) λz.((z a) b)) (λz.((z a) b) T ) ((T a) b) a snd def λp(f ) (snd ((pair a) b)) (λp.(p F ) λz.((z a) b)) (λz.((z a) b) F ) ((F a) b) b pair def λx.λy.λz.((z x) y) ((pair a) b) (λx.λy.λz.((z x) y)ab )λz.((z a) b) 3 : 48 / 60

107 TDA Pair Implementare Intuiție: pereche funcție ce așteaptă selectorul, pentru a-l aplica asupra membrilor fst def λp.(p T ) (fst ((pair a) b)) (λp.(p T ) λz.((z a) b)) (λz.((z a) b) T ) ((T a) b) a snd def λp(f ) (snd ((pair a) b)) (λp.(p F ) λz.((z a) b)) (λz.((z a) b) F ) ((F a) b) b pair def λx.λy.λz.((z x) y) ((pair a) b) (λx.λy.λz.((z x) y)ab )λz.((z a) b) 3 : 48 / 60

108 TDA Pair Implementare Intuiție: pereche funcție ce așteaptă selectorul, pentru a-l aplica asupra membrilor fst def λp.(p T ) (fst ((pair a) b)) (λp.(p T ) λz.((z a) b)) (λz.((z a) b) T ) ((T a) b) a snd def λp(f ) (snd ((pair a) b)) (λp.(p F ) λz.((z a) b)) (λz.((z a) b) F ) ((F a) b) b pair def λx.λy.λz.((z x) y) ((pair a) b) (λx.λy.λz.((z x) y)ab )λz.((z a) b) 3 : 48 / 60

109 TDA List și Natural Implementare Intuiție: listă pereche (head, tail) nil def λx.t cons def pair ((cons e) L) ((λx.λy.λz.((z x) y) e) L) λz.((z e) L) car def fst cdr def snd Intuiție: număr listă cu lungimea egală cu valoarea numărului zero def nil succ def λn.((cons nil) n) pred def cdr vezi și [ 3 : 49 / 60

110 Absența tipurilor Chiar avem nevoie de tipuri? Rolul tipurilor Modalitate de exprimare a intenției programatorului; Documentare: ce operatori acționează asupra căror obiecte; Reprezentarea particulară a valorilor de tipuri diferite: 1, Hello, #t etc.; Optimizarea operațiilor specifice; Prevenirea erorilor; Facilitarea verificării formale; 3 : 50 / 60

111 Absența tipurilor Consecințe asupra reprezentării obiectelor Un număr, o listă sau un arbore, posibil desemnate de aceeași valoare! Valori și operatori reprezentați de funcții, semnificația fiind dependentă de context. Valoare aplicabilă asupra unei alte valori operator! 3 : 51 / 60

112 Absența tipurilor Consecințe asupra corectitudinii calculului Incapacitatea Mașinii λ de a interpreta semnificația expresiilor; asigura corectitudinea acestora (dpdv al tipurilor). Delegarea celor două aspecte programatorului; Orice operatori aplicabili asupra oricăror valori; Construcții eronate acceptate fără avertisment, dar calcule terminate cu valori fără semnificație sau expresii care nu sunt valori (nu au asociată o semnificație), dar sunt ireductibile instabilitate. 3 : 52 / 60

113 Absența tipurilor Consecințe pozitive Flexibilitate sporită în reprezentare; Potrivită în situațiile în care reprezentarea uniformă obiectelor, ca liste de simboluri, este convenabilă.... vin cu prețul unei dificultăți sporite în depanare, verificare și mentenanță 3 : 53 / 60

114 Recursivitate Perspective asupra recursivității Cum realizăm recursivitatea în λ 0, dacă nu avem nume de funcții? Textuală: funcție care se autoapelează, folosindu-și numele; Semantică: ce obiect matematic este desemnat de o funcție recursivă, cu posibilitatea construirii de funcții recursive anonime. 3 : 54 / 60

115 Implementare length Problemă Lungimea unei liste: length def λl.(if (null L) zero (succ (length (cdr L)))) Cu ce înlocuim zona subliniată, pentru a evita recursivitatea textuală? (expresia pentru length nu este închisă!) Putem primi ca parametru o funcție echivalentă computațional cu length? Length def λf L.(if (null L) zero (succ (f (cdr L)))) (Length length) = length length este un punct fix al lui Length! Cum obținem punctul fix? 3 : 55 / 60

116 Combinator de punct fix mai multe la [ Ex Fix = λf.(λx.(f (x x)) λx.(f (x x))) Exemplu (Fix F ) (λx.(f (x x)) λx.(f (x x))) (F (λx.(f (x x)) λx.(f (x x)))) (F (Fix F )) (Fix F ) este un punct fix al lui F. Fix se numește combinator de punct fix. length def (Fix Length) (Length (Fix Length)) λ L.(if (null L) zero (succ ((Fix Length) (cdr L)))) Funcție recursivă, fără a fi textual recursivă! 3 : 56 / 60

117 Racket vs. lambda-0 3 : 57 / 60

118 Racket vs. λ 0 Construcția expresiilor / sintaxă λ Racket Variabilă/nume x x Funcție λ x.corp (lambda (x) corp) uncurry λ x y.corp (lambda (x y) corp) Aplicare (F A) (f a) uncurry (F A1 A2) (f a1 a2) Legare top-level - (define nume expr) Program λ-expresie închisă colecție de legări top-level (define) Valori λ-expresii / TDA valori de diverse tipuri (numere, liste, etc.) 3 : 58 / 60

119 Racket vs. λ 0 Mai precis similar cu λ 0, folosește S-expresii (bază Lisp); tipat dinamic/latent variabilele nu au tip; valorile au tip (3, #f); verificarea se face la execuție, în momentul aplicării unei funcții; evaluare aplicativă; permite recursivitate textuală; avem legări top-level. 3 : 59 / 60

120 Sfârșitul cursului 3 Elemente esențiale Baza formală a calculului λ: expresie λ, β-redex, variabile și apariții legate vs. libere, expresie închisă, α-conversie, β-reducere FN și FNF, reducere, reductibilitate, evaluare aplicativă și normală TDA și recursivitate pentru calcul lambda 3 : 60 / 60

Cursul 1: Introducere Paradigme de Programare Conf. dr. ing. Andrei Olaru Departamentul de Calculatoare 2019

Cursul 1: Introducere Paradigme de Programare Conf. dr. ing. Andrei Olaru  Departamentul de Calculatoare 2019 Cursul 1: Paradigme de Programare Conf. dr. ing. Andrei Olaru andrei.olaru@cs.pub.ro cs@andreiolaru.ro Departamentul de Calculatoare 2019 1 2 Ce studiem la PP? 3 De ce studiem această materie? 4 Paradigma

Mai mult

Paradigme de Programare

Paradigme de Programare Paradigme de Programare Conf. dr. ing. Andrei Olaru andrei.olaru@cs.pub.ro cs@andreiolaru.ro Departamentul de Calculatoare 2019 9 : 1 / 38 Cursul 9 Concluzie Paradigma Funcțională 9 : 2 / 38 Cursul 9:

Mai mult

Paradigme de programare

Paradigme de programare Curs 4 Transparență referențială. Legare statică / dinamică. Modelul contextual de evaluare. Transparență referențială Cuprins Efecte laterale Transparență referențială 2 Efecte laterale Efecte laterale

Mai mult

Paradigme de Programare

Paradigme de Programare Paradigme de Programare Conf. dr. ing. Andrei Olaru andrei.olaru@cs.pub.ro cs@andreiolaru.ro Departamentul de Calculatoare 2019 1 : 1 / 38 Cursul 1 Introducere 1 : 2 / 38 Cursul 1: Introducere 1 Exemplu

Mai mult

LOGICA MATEMATICA SI COMPUTATIONALA Sem. I,

LOGICA MATEMATICA SI COMPUTATIONALA  Sem. I, LOGICA MATEMATICĂ ŞI COMPUTAŢIONALĂ Sem. I, 2017-2018 Ioana Leustean FMI, UB Partea III Calculul propoziţional clasic Consistenţă şi satisfiabilitate Teorema de completitudine Algebra Lindenbaum-Tarski

Mai mult

Logică și structuri discrete Limbaje regulate și automate Marius Minea marius/curs/lsd/ 24 noiembrie 2014

Logică și structuri discrete Limbaje regulate și automate Marius Minea   marius/curs/lsd/ 24 noiembrie 2014 Logică și structuri discrete Limbaje regulate și automate Marius Minea marius@cs.upt.ro http://www.cs.upt.ro/ marius/curs/lsd/ 24 noiembrie 2014 Un exemplu: automatul de cafea acțiuni (utilizator): introdu

Mai mult

ExamView Pro - Untitled.tst

ExamView Pro - Untitled.tst Class: Date: Subiecte logica computationala licenta matematica-informatica 4 ani Multiple Choice Identify the letter of the choice that best completes the statement or answers the question. 1. Fie formula

Mai mult

Prelegerea 3 În această prelegere vom învăţa despre: Clase speciale de latici: complementate. modulare, metrice, distributive şi 3.1 Semi-distributivi

Prelegerea 3 În această prelegere vom învăţa despre: Clase speciale de latici: complementate. modulare, metrice, distributive şi 3.1 Semi-distributivi Prelegerea 3 În această prelegere vom învăţa despre: Clase speciale de latici: complementate. modulare, metrice, distributive şi 3.1 Semi-distributivitate şi semi - modularitate Fie L o latice. Se numeşte

Mai mult

ALGORITMII ŞI REPREZENTAREA LOR Noţiunea de algoritm Noţiunea de algoritm este foarte veche. Ea a fost introdusă în secolele VIII-IX de către Abu Ja f

ALGORITMII ŞI REPREZENTAREA LOR Noţiunea de algoritm Noţiunea de algoritm este foarte veche. Ea a fost introdusă în secolele VIII-IX de către Abu Ja f ALGORITMII ŞI REPREZENTAREA LOR Noţiunea de algoritm Noţiunea de algoritm este foarte veche. Ea a fost introdusă în secolele VIII-IX de către Abu Ja far Mohammed ibn Musâ al- Khowârizmî în cartea sa intitulată

Mai mult

Prelegerea 4 În această prelegere vom învăţa despre: Algebre booleene; Funcţii booleene; Mintermi şi cuburi n - dimensionale. 4.1 Definirea algebrelor

Prelegerea 4 În această prelegere vom învăţa despre: Algebre booleene; Funcţii booleene; Mintermi şi cuburi n - dimensionale. 4.1 Definirea algebrelor Prelegerea 4 În această prelegere vom învăţa despre: Algebre booleene; Funcţii booleene; Mintermi şi cuburi n - dimensionale. 4.1 Definirea algebrelor booleene Definiţia 4.1 Se numeşte algebră Boole (booleană)

Mai mult

PowerPoint Presentation

PowerPoint Presentation Circuite Integrate Digitale Conf. Monica Dascălu Curs Seminar Laborator notă separată Notare: 40% seminar 20% teme // + TEMA SUPLIMENTARA 40% examen 2014 CID - curs 1 2 Bibliografie Note de curs Cursul

Mai mult

Logică și structuri discrete Logică propozițională Marius Minea marius/curs/lsd/ 3 noiembrie 2014

Logică și structuri discrete Logică propozițională Marius Minea   marius/curs/lsd/ 3 noiembrie 2014 Logică și structuri discrete Logică propozițională Marius Minea marius@cs.upt.ro http://www.cs.upt.ro/ marius/curs/lsd/ 3 noiembrie 2014 Unde aplicăm verificarea realizabilității? probleme de căutare și

Mai mult

Analiză statică Analiza fluxului de date 23 octombrie 2014

Analiză statică Analiza fluxului de date 23 octombrie 2014 Analiză statică Analiza fluxului de date 23 octombrie 2014 Analiză statică: definiție O analiză a codului sursă (fără a executa programul), cu scopul de a determina proprietăți ale programului sursă. (in

Mai mult

Analiză de flux de date 29 octombrie 2012

Analiză de flux de date 29 octombrie 2012 Analiză de flux de date 29 octombrie 2012 Analiză statică: definiţie O analiză a codului sursă (fără a executa programul), cu scopul de a determina proprietăţi ale programului sursă. (in principal corectitudinea,

Mai mult

Coman Marinela Furnizor program formare acreditat: CCD BRĂILA Denumire program: INFORMATICĂ ŞI TIC PENTRU GIMNAZIU Clasa a V-a Categorie: 1; Tip de co

Coman Marinela Furnizor program formare acreditat: CCD BRĂILA Denumire program: INFORMATICĂ ŞI TIC PENTRU GIMNAZIU Clasa a V-a Categorie: 1; Tip de co Furnizor program formare acreditat: CCD BRĂILA Denumire program: INFORMATICĂ ŞI TIC PENTRU GIMNAZIU Clasa a V-a Categorie: 1; Tip de competențe: de predare-învățare-evaluare la clasa a V-a pt. disciplina

Mai mult

Limbaje de ordinul I LOGICA DE ORDINUL I Un limbaj L de ordinul I este format din: o mulţime numărabilă V = {v n n N} de variabile; conectorii şi ; pa

Limbaje de ordinul I LOGICA DE ORDINUL I Un limbaj L de ordinul I este format din: o mulţime numărabilă V = {v n n N} de variabile; conectorii şi ; pa Limbaje de ordinul I LOGICA DE ORDINUL I Un limbaj L de ordinul I este format din: o mulţime numărabilă V = {v n n N} de variabile; conectorii şi ; paranteze: (, ); simbolul de egalitate =; cuantificatorul

Mai mult

Probleme date la examenul de logică matematică şi computaţională. Partea a II-a Claudia MUREŞAN Universitatea din Bucureşti Facultatea de Matematică ş

Probleme date la examenul de logică matematică şi computaţională. Partea a II-a Claudia MUREŞAN Universitatea din Bucureşti Facultatea de Matematică ş Probleme date la examenul de logică matematică şi computaţională. Partea a II-a Claudia MUREŞAN Universitatea din Bucureşti Facultatea de Matematică şi Informatică Academiei 4, RO 0004, Bucureşti, România

Mai mult

Şiruri de numere reale Facultatea de Hidrotehnică Universitatea Tehnică Gheorghe Asachi Iaşi, 2015 Analiză Matematică Lucian Maticiuc 1 / 29

Şiruri de numere reale Facultatea de Hidrotehnică Universitatea Tehnică Gheorghe Asachi Iaşi, 2015 Analiză Matematică Lucian Maticiuc 1 / 29 Şiruri de numere reale Facultatea de Hidrotehnică Universitatea Tehnică Gheorghe Asachi Iaşi, 2015 Analiză Matematică Lucian Maticiuc 1 / 29 Definiţie. Şiruri mărginite. Şiruri monotone. Subşiruri ale

Mai mult

Logică și structuri discrete Relații. Funcții parțiale Marius Minea marius/curs/lsd/ 20 octombrie 2014

Logică și structuri discrete Relații. Funcții parțiale Marius Minea   marius/curs/lsd/ 20 octombrie 2014 Logică și structuri discrete Relații. Funcții parțiale Marius Minea marius@cs.upt.ro http://www.cs.upt.ro/ marius/curs/lsd/ 20 octombrie 2014 Relații în lumea reală și informatică Noțiunea matematică de

Mai mult

Facultatea de Matematică Anul II Master, Geometrie Algebrică Mulţimi algebrice ireductibile. Dimensiune 1 Mulţimi ireductibile Propoziţia 1.1. Fie X u

Facultatea de Matematică Anul II Master, Geometrie Algebrică Mulţimi algebrice ireductibile. Dimensiune 1 Mulţimi ireductibile Propoziţia 1.1. Fie X u Facultatea de Matematică Anul II Master, Geometrie Algebrică Mulţimi algebrice ireductibile. Dimensiune 1 Mulţimi ireductibile Propoziţia 1.1. Fie X un spaţiu topologic. Următoarele afirma-ţii sunt echivalente:

Mai mult

Microsoft Word - Mapa 0.doc

Microsoft Word - Mapa 0.doc ACADEMIA ROMÂNĂ INSTITUTUL DE FILOSOFIE ŞI PSIHOLOGIE CONSTANTIN RĂDULESCU-MOTRU PROBLEME DE LOGICĂ VOL. XIII Dragoş POPESCU Coordonatori: Ştefan-Dominic GEORGESCU EDITURA ACADEMIEI ROMÂNE Bucureşti, 2010

Mai mult

Retele Petri si Aplicatii

Retele Petri si Aplicatii Reţele Petri şi Aplicaţii Curs 4 RPA (2019) Curs 4 1 / 45 Cuprins 1 Analiza structurală a reţelelor Petri Sifoane Capcane Proprietăţi 2 Modelarea fluxurilor de lucru: reţele workflow Reţele workflow 3

Mai mult

CURBE BÉZIER În CAGD se utilizează adesea curbele polinomiale, adică acele curbe definite de o parametrizare polinomială: C : [a, b] R 3 C(t) = (x(t),

CURBE BÉZIER În CAGD se utilizează adesea curbele polinomiale, adică acele curbe definite de o parametrizare polinomială: C : [a, b] R 3 C(t) = (x(t), CURE ÉZIER În CAGD se utilizează adesea curbele polinomiale, adică acele curbe definite de o parametrizare polinomială: C : [a, b] R 3 C(t) = (x(t), y(t), z(t)) cu x, y, z polinoame de grad n. Maximul

Mai mult

Managementul Resurselor Umane

Managementul Resurselor Umane Universitatea Politehnica București Catedra de Calculatoare Laborator 4 Cereri SQL Autori Conf. Dr. Ing. Alexandru Boicea Ș.L. Dr. Ing. Ciprian-Octavian Truică Cuprins Cereri SQL Cereri simple 10.03.2019

Mai mult

Microsoft Word - Curs_08.doc

Microsoft Word - Curs_08.doc Partea a II-a. Proiectarea bazelor de date Capitolul 6. Tehnici de proiectare şi modele În capitolele precedente s-au analizat modele de baze de date şi limbaje, presupunând în cele mai multe cazuri că

Mai mult

Notiuni de algebra booleana

Notiuni de algebra booleana Noţiuni de algebră booleană (în lucru) Definiţie Algebră booleană = o structură algebrică formată din: O mulţime B Două operaţii binare notate cu (+) şi (.) O operaţie unară notată cu ( ) pentru care sunt

Mai mult

Cursul 7 Formula integrală a lui Cauchy Am demonstrat în cursul precedent că, dacă D C un domeniu simplu conex şi f : D C o funcţie olomorfă cu f cont

Cursul 7 Formula integrală a lui Cauchy Am demonstrat în cursul precedent că, dacă D C un domeniu simplu conex şi f : D C o funcţie olomorfă cu f cont Cursul 7 Formula integrală a lui Cauchy Am demonstrat în cursul precedent că, dacă D C un domeniu simplu conex şi f : D C o funcţie olomorfă cu f continuă pe D, atunci, pe orice curbă rectificabilă şi

Mai mult

DOMENIUL: Matematica

DOMENIUL: Matematica PLAN DE ÎNVĂŢĂMÂNT valabil începând cu anul universitar 2013-2014 Program postuniversitar de conversie profesională Facultatea: MATEMATICĂ ȘI INFORMATICĂ Programul de studii: MATEMATICĂ Forma de învățământ:

Mai mult

Microsoft PowerPoint - Curs_SDA_9_RO_2019_v2.pptx

Microsoft PowerPoint - Curs_SDA_9_RO_2019_v2.pptx SDA (PC2) Curs 9 Liste / Grafuri / Arbori Iulian Năstac Lista dublu înlănțuită Recapitulare Într-o astfel de listă fiecare nod conţine doi pointeri: unul spre nodul următor şi unul spre nodul precedent.

Mai mult

Microsoft Word - Algoritmi genetici.docx

Microsoft Word - Algoritmi genetici.docx 1.1 Generalităţi Algoritmii genetici fac parte din categoria algoritmilor de calcul evoluționist și sunt inspirați de teoria lui Darwin asupra evoluției. Idea calculului evoluționist a fost introdusă în

Mai mult

Fâciu N. Maria-Ema CASA CORPULUI DIDACTIC BRĂILA PROGRAM DE FORMARE INFORMATICĂ ȘI TIC PENTRU GIMNAZIU CLASA A V-A SERIA 1 GRUPA 2 CURSANT: Fâciu N. M

Fâciu N. Maria-Ema CASA CORPULUI DIDACTIC BRĂILA PROGRAM DE FORMARE INFORMATICĂ ȘI TIC PENTRU GIMNAZIU CLASA A V-A SERIA 1 GRUPA 2 CURSANT: Fâciu N. M CASA CORPULUI DIDACTIC BRĂILA PROGRAM DE FORMARE INFORMATICĂ ȘI TIC PENTRU GIMNAZIU CLASA A V-A SERIA 1 GRUPA 2 CURSANT: PROIECTUL UNITĂŢII DE ÎNVĂŢARE ALGORITMI Notă: filmele didactice, dezbaterile, jocurile

Mai mult

Microsoft Word - cap1p4.doc

Microsoft Word - cap1p4.doc Algebră liniară, geometrie analitică şi diferenţială.6 Subspaţii vectoriale Fie V un spaţiu vectorial peste corpul K. În cele ce urmează vom introduce două definiţii echivalente pentru noţiunea de subspaţiu

Mai mult

Limbaje Formale, Automate si Compilatoare

Limbaje Formale, Automate si Compilatoare Limbaje Formale, Automate şi Compilatoare Curs 1 2018-19 LFAC (2018-19) Curs 1 1 / 45 Prezentare curs Limbaje Formale, Automate şi Compilatoare - Curs 1 1 Prezentare curs 2 Limbaje formale 3 Mecanisme

Mai mult

Probleme proiect TP BITPERM Implementați un algoritm care citește de la intrarea standard două numere naturale și scrie la ieșirea standard da

Probleme proiect TP BITPERM Implementați un algoritm care citește de la intrarea standard două numere naturale și scrie la ieșirea standard da Probleme proiect TP 2016 1. BITPERM Implementați un algoritm care citește de la intrarea standard două numere naturale și scrie la ieșirea standard dacă reprezentarea binară a unuia dintre numere poate

Mai mult

Microsoft Word - Curs_09.doc

Microsoft Word - Curs_09.doc Capitolul 7. Proiectarea conceptuală Scop: reprezentarea cerinţelor informale ale aplicaţiei în termenii descrierii complete şi formale dar independent de criteriul folosit pentru reprezentare în sistemul

Mai mult

Dorel LUCHIAN Gabriel POPA Adrian ZANOSCHI Gheorghe IUREA algebră geometrie clasa a VIII-a ediţia a V-a, revizuită mate 2000 standard EDITURA PARALELA

Dorel LUCHIAN Gabriel POPA Adrian ZANOSCHI Gheorghe IUREA algebră geometrie clasa a VIII-a ediţia a V-a, revizuită mate 2000 standard EDITURA PARALELA Dorel LUCHIAN Gabriel POPA Adrian ZANOSCHI Gheorghe IUREA algebră geometrie clasa a VIII-a ediţia a V-a, revizuită mate 000 standard 3 10 PP Algebră Capitolul I. NUMERE REALE Competenţe specifice: Determinarea

Mai mult

Capitole Speciale de Informatică Curs 4: Calculul scorurilor în un sistem complet de extragere a informaţiilor 18 octombrie 2018 Reamintim că în cursu

Capitole Speciale de Informatică Curs 4: Calculul scorurilor în un sistem complet de extragere a informaţiilor 18 octombrie 2018 Reamintim că în cursu Capitole Speciale de Informatică Curs 4: Calculul scorurilor în un sistem complet de extragere a informaţiilor 18 octombrie 2018 Reamintim că în cursul precedent am prezentat modelul de spaţiu vectorial

Mai mult

Microsoft Word - CarteC.doc

Microsoft Word - CarteC.doc Transmiterea parametrilor unei funcții Parametrii se transmit de la funcţia apelantă la funcţia apelată prin intermediul stivei. La apelul unei funcţii, pe stivă se crează o înregistrare de activare, care

Mai mult

Microsoft Word - Curs1.docx

Microsoft Word - Curs1.docx 1. REPREZENTAREA INFORMAȚIILOR ÎN CALCULATOR 1.1. CONCEPTUL DE DATĂ ȘI INFORMAȚIE Datele desemnează elementele primare, provenind din diverse surse, fără o formă organizată care să permită luarea unor

Mai mult

Elemente de aritmetica

Elemente de aritmetica Elemente de aritmetică Anul II Februarie 2017 Divizibilitate în Z Definiţie Fie a, b Z. Spunem că a divide b (scriem a b) dacă există c Z astfel încât b = ac. In acest caz spunem că a este un divizor al

Mai mult

Utilizare Internet

Utilizare Internet Curs 14 2014/2015 1 Functionalitate La toate temele 1p din nota este obtinut de indeplinirea functionalitatii cerute. orice tehnologie, orice metoda, sa faca ceea ce trebuie Forma paginii prezinta importanta

Mai mult

Baze de date Anul 2 Teorie Examen 1. Diagrama entitate/relatie si diagrama conceptuala (curs 2-5) 2. Arbore algebric si expresie algebrica (curs 6-10)

Baze de date Anul 2 Teorie Examen 1. Diagrama entitate/relatie si diagrama conceptuala (curs 2-5) 2. Arbore algebric si expresie algebrica (curs 6-10) Baze de date Anul 2 Teorie Examen 1. Diagrama entitate/relatie si diagrama conceptuala (curs 2-5) 2. Arbore algebric si expresie algebrica (curs 6-10) 3. Forme normale (curs 6-10) 4. Notiuni teoretice

Mai mult

L4. TEOREMELE ALGEBREI BINARE. FUNCȚII LOGICE ELEMENTARE. OPERAȚII LOGICE PE BIT. SINTEZA FUNCȚIILOR LOGICE DIN TABELE DE ADEVĂR 1. Obiective Prin par

L4. TEOREMELE ALGEBREI BINARE. FUNCȚII LOGICE ELEMENTARE. OPERAȚII LOGICE PE BIT. SINTEZA FUNCȚIILOR LOGICE DIN TABELE DE ADEVĂR 1. Obiective Prin par L4. TEOREMELE LGEBREI BINRE. FUNCȚII LOGICE ELEMENTRE. OPERȚII LOGICE PE BIT. SINTEZ FUNCȚIILOR LOGICE DIN TBELE DE DEVĂR 1. Obiective Prin parcurgerea acestei ședințe de laborator studenții vor fi capabili:

Mai mult

LUCRAREA 8 PROGRAMAREA NELINIARĂ ÎN REZOLVAREA PROBLEMELOR DIN ENERGETICĂ. METODE DE ORDINUL Aspecte generale Programarea neliniară are o foart

LUCRAREA 8 PROGRAMAREA NELINIARĂ ÎN REZOLVAREA PROBLEMELOR DIN ENERGETICĂ. METODE DE ORDINUL Aspecte generale Programarea neliniară are o foart LUCRAREA 8 PROGRAMAREA NELINIARĂ ÎN REZOLVAREA PROBLEMELOR DIN ENERGETICĂ. METODE DE ORDINUL 0 8.. Aspecte generale Programarea neliniară are o foarte mare importanţă în rezolvarea problemelor de optimizări,

Mai mult

Cursul 8 Funcţii analitice Vom studia acum comportarea şirurilor şi seriilor de funcţii olomorfe, cu scopul de a dezvălui o proprietate esenţială a ac

Cursul 8 Funcţii analitice Vom studia acum comportarea şirurilor şi seriilor de funcţii olomorfe, cu scopul de a dezvălui o proprietate esenţială a ac Cursul 8 Funcţii analitice Vom studia acum comportarea şirurilor şi seriilor de funcţii olomorfe, cu scopul de a dezvălui o proprietate esenţială a acestor funcţii: analiticitatea. Ştim deja că, spre deosebire

Mai mult

COMENTARII FAZA JUDEŢEANĂ, 9 MARTIE 2013 Abstract. Personal comments on some of the problems presented at the District Round of the National Mathemati

COMENTARII FAZA JUDEŢEANĂ, 9 MARTIE 2013 Abstract. Personal comments on some of the problems presented at the District Round of the National Mathemati COMENTARII FAZA JUDEŢEANĂ, 9 MARTIE 2013 Abstract. Personal comments on some of the problems presented at the District Round of the National Mathematics Olympiad 2013. Data: 12 martie 2013. Autor: Dan

Mai mult

PPSD

PPSD Modele paralele SPMD Modelul SPMD Comunicarea prin mesaje Message Passing Interface Modelul SPMD Modelul SPMD (Single Program Multiple Data) Acesta este un model adecvat calculatoarelor MIMD In cele ce

Mai mult

TEORIA MĂSURII Liviu C. Florescu Universitatea Al.I.Cuza, Facultatea de Matematică, Bd. Carol I, 11, R Iaşi, ROMANIA, e mail:

TEORIA MĂSURII Liviu C. Florescu Universitatea Al.I.Cuza, Facultatea de Matematică, Bd. Carol I, 11, R Iaşi, ROMANIA, e mail: TEORI MĂSURII Liviu C. Florescu Universitatea l.i.cuza, Facultatea de Matematică, Bd. Carol I, 11, R 700506 Iaşi, ROMNI, e mail: lflo@uaic.ro În mod intenţionat această pagină este lăsată albă! Cuprins

Mai mult

PROGRAMARE ORIENTATA PE OBIECTE

PROGRAMARE ORIENTATA PE OBIECTE Curs 2 Principiile Programării Orientate pe Obiecte Programare Orientată pe Obiecte Tehnici de programare Programarea procedurală Modul în care este abordată programarea, din punct de vedere al descompunerii

Mai mult

B

B F.I.A. Laboratorul numărul 3 Cătălin Stoean Unificarea şi recursivitatea Unificarea Unificarea reprezintă modul în care Prologul realizează potrivirile între termeni. La prima vedere, procesul de unificare

Mai mult

proiectarea bazelor de date

proiectarea bazelor de date Universitatea Constantin Brâncuşi din Târgu-Jiu Facultatea de Inginerie şi Dezvoltare Durabilă Departamentul de Automatică, Energie, Mediu şi Dezvoltare Durabilă Proiectarea bazelor de date Lect.dr. Adrian

Mai mult

Raport Național

Raport Național EN VI 2015 Raport Național Analiza rezultatelor Evaluării naționale la finalul clasei a VI-a PROBA: MATEMATICĂ ȘI ȘTIINȚE EVALUAREA NAȚIONALĂ LA FINALUL CLASEI a VI-a 2015 Centrul Național de Evaluare

Mai mult

Microsoft PowerPoint - Prezentarea_programelor_de_studii_de_licenta_2019

Microsoft PowerPoint - Prezentarea_programelor_de_studii_de_licenta_2019 Universitateadin București Facultatea de Matematică și Informatică Programele de studii de licență - descriere și admitere - Scurt istoric 1864 Se înființează Facultateade Științe, cu o secție de Matematică

Mai mult

Gheorghe IUREA Adrian ZANOSCHI algebră geometrie clasa a VII-a ediţia a V-a, revizuită mate 2000 standard EDITURA PARALELA 45 Matematică. Clasa a VII-

Gheorghe IUREA Adrian ZANOSCHI algebră geometrie clasa a VII-a ediţia a V-a, revizuită mate 2000 standard EDITURA PARALELA 45 Matematică. Clasa a VII- Gheorghe IUREA Adrian ZANOSCHI algebră geometrie clasa a VII-a ediţia a V-a, revizuită mate 2000 standard 3 Algebră Capitolul I. MULŢIMEA NUMERELOR RAŢIONALE Identificarea caracteristicilor numerelor raţionale

Mai mult

Limbaje de Programare Curs 6 – Functii de intrare-iesire

Limbaje de Programare   Curs 6 – Functii de intrare-iesire Limbaje de Programare Curs 6 Funcţii de intrare-ieşire Dr. Casandra Holotescu Universitatea Politehnica Timişoara Ce discutăm azi... 1 Citire formatată 2 Citirea şirurilor de caractere 3 Citirea unor linii

Mai mult

Microsoft Word - Curs_10.doc

Microsoft Word - Curs_10.doc Capitolul 8. Proiectarea logică Scop - construirea unei scheme logice ce reprezintă corect şi eficient toate informaţiile descrise într-o schemă entitate-relaţie Etape: Restructurarea schemei E-R fază

Mai mult

E_d_Informatica_sp_MI_2015_bar_02_LRO

E_d_Informatica_sp_MI_2015_bar_02_LRO Examenul de bacalaureat naţional 2015 Proba E. d) Informatică Varianta 2 Filiera teoretică, profilul real, specializările: matematică-informatică matematică-informatică intensiv informatică Toate subiectele

Mai mult

OPERATII DE PRELUCRAREA IMAGINILOR 1

OPERATII DE PRELUCRAREA IMAGINILOR 1 OPERATII DE PRELUCRAREA IMAGINILOR Prelucrarea imaginilor 2 Tipuri de operatii de prelucrare Clasificare dupa numarul de pixeli din imaginea initiala folositi pentru calculul valorii unui pixel din imaginea

Mai mult

MergedFile

MergedFile PROIECT DIDACTIC Clasa a VI-a Matematică Proiect didactic realizat de Nicoleta Popa, profesor Digitaliada, revizuit de Ioan Popa, profesor Digitaliada Textul și ilustrațiile din acest document începând

Mai mult

Laborator 3

Laborator 3 Laborator 3 Programare III săptămâna 8-12.10.2018 OBIECTIVE: - Folosirea modificatorilor unei clase (public, abstract, final) - Folosirea modificatorilor de acces în declaraţiile membrilor unei clase Noţiuni:

Mai mult

Logică și structuri discrete Mulțimi Casandra Holotescu

Logică și structuri discrete Mulțimi Casandra Holotescu Logică și structuri discrete Mulțimi Casandra Holotescu casandra@cs.upt.ro https://tinyurl.com/lectureslsd Mulțimi aspecte teoretice Ce sunt mulțimile? Mulțimea e un concept matematic fundamental. Definiție

Mai mult

Curs 8: Tehnica divizării (I) Algoritmi si structuri de date - Curs 8 1

Curs 8: Tehnica divizării (I) Algoritmi si structuri de date - Curs 8 1 Curs : Tehnica divizării (I) 1 In cursul anterior am văzut cum se analizează eficiența algoritmilor recursivi Se scrie relația de recurență corespunzătoare timpului de execuție Se rezolvă relația de recurență

Mai mult

Cursul 12 (plan de curs) Integrale prime 1 Sisteme diferenţiale autonome. Spaţiul fazelor. Fie Ω R n o mulţime deschisă şi f : Ω R n R n o funcţie de

Cursul 12 (plan de curs) Integrale prime 1 Sisteme diferenţiale autonome. Spaţiul fazelor. Fie Ω R n o mulţime deschisă şi f : Ω R n R n o funcţie de Cursul 12 (plan de curs) Integrale prime 1 Sisteme diferenţiale autonome. Spaţiul fazelor. Fie Ω R n o mulţime deschisă şi f : Ω R n R n o funcţie de clasă C 1. Vom considera sistemul diferenţial x = f(x),

Mai mult

PowerPoint Presentation

PowerPoint Presentation Forme Normale 4 Redundanţa Redundanţa este cauza principală a majorităţii problemelor legate de structura bazelor de date relaţionale: spaţiu utilizat, anomalii de inserare / stergere / actualizare. Redundanţa

Mai mult

ROMÂNIA MINISTERUL EDUCAŢIEI NAȚIONALE Domeniul fundamental: Matematică și știinţe ale naturii Domeniul de licenţă: Informatică Ciclu de studii: 1 Pro

ROMÂNIA MINISTERUL EDUCAŢIEI NAȚIONALE Domeniul fundamental: Matematică și știinţe ale naturii Domeniul de licenţă: Informatică Ciclu de studii: 1 Pro ROMÂNIA MINISTERUL EDUCAŢIEI NAȚIONALE Domeniul fundamental: Matematică și știinţe ale naturii Domeniul de licenţă: Informatică Ciclu de studii: 1 Programul de studii (Specializarea): Informatică Durata

Mai mult

Microsoft Word - Cap09_AutoorganizareSiEmergentaInSistemeleAdaptiveComplexe_grile.doc

Microsoft Word - Cap09_AutoorganizareSiEmergentaInSistemeleAdaptiveComplexe_grile.doc Grile 1. Care este proprietatea universală în sistemele vii, organizaţii şi sisteme economice şi sociale, cărora le conferă calitatea de a manifesta caracteristici şi comportamente cu totul noi, care nu

Mai mult

Slide 1

Slide 1 VII. ÎNSCRIEREA PE DESENELE TEHNICE A PRESCRIPŢIILOR DE CALITATE Starea suprafeţelor influenţează fiabilitatea şi funcţionarea pieselor în cadrul unui ansamblu 7.1 STAREA SUPRAFEŢELOR (RUGOZITATEA) SR

Mai mult

Laborator 1 suport teoretic Mediul de dezvoltare Eclipse GLOSAR - Aplicaţie: program obţinut în urma aplicării operației BUILD asupra unui proiect (ve

Laborator 1 suport teoretic Mediul de dezvoltare Eclipse GLOSAR - Aplicaţie: program obţinut în urma aplicării operației BUILD asupra unui proiect (ve Laborator 1 suport teoretic Mediul de dezvoltare Eclipse GLOSAR - Aplicaţie: program obţinut în urma aplicării operației BUILD asupra unui proiect (vezi Program C) - BUILD: operație complexă prin care

Mai mult

G.I.S. Curs 3

G.I.S. Curs 3 G.I.S. Curs 3 Geogafia Mediului 1.04.2014 Dr. Constantin Nistor Formatul de date vectorial Datele vectoriale descriu lumea sub forma unui spaţiu populat de linii în variate aspecte şi feluri: puncte, linii,

Mai mult

INDICATORI AI REPARTIŢIEI DE FRECVENŢĂ

INDICATORI AI REPARTIŢIEI DE FRECVENŢĂ STATISTICA DESCRIPTIVĂ observarea Obiective: organizarea sintetizarea descrierea datelor Analiza descriptivă a datelor Analiza statistică descriptivă reperezintă un tip de analiză ce servește la descrierea,

Mai mult

Distanţa euclidiană (indusă de norma euclidiană) (în R k ). Introducem în continuare o altă aplicaţie, de această dată pe produsul cartezian R k XR k,

Distanţa euclidiană (indusă de norma euclidiană) (în R k ). Introducem în continuare o altă aplicaţie, de această dată pe produsul cartezian R k XR k, Distanţa euclidiană (indusă de norma euclidiană) (în R k ). Introducem în continuare o altă aplicaţie, de această dată pe produsul cartezian R k XR k, aplicaţie despre care vom vedea că reprezintă generalizarea

Mai mult

Subiectul 1

Subiectul 1 Subiectul 1 În fişierul Numere.txt pe prima linie este memorat un număr natural n (n

Mai mult

ALGORITMICĂ. Seminar 3: Analiza eficienţei algoritmilor - estimarea timpului de execuţie şi notaţii asimptotice. Problema 1 (L) Să se determine număru

ALGORITMICĂ. Seminar 3: Analiza eficienţei algoritmilor - estimarea timpului de execuţie şi notaţii asimptotice. Problema 1 (L) Să se determine număru ALGORITMICĂ. Seminar 3: Analiza eficienţei algoritmilor - estimarea timpului de execuţie şi notaţii asimptotice. Problema 1 (L) Să se determine numărul de operaţii efectuate de către un algoritm care determină

Mai mult

Microsoft Word - Laborator 6 - Expresii Regulate IV.doc

Microsoft Word - Laborator 6 - Expresii Regulate IV.doc PERL Laborator 6 Adrian Iftene Martie 26, 2007 1 1 Greşeli Comune când lucrăm cu RegExp... 3 2 Câteva Subiecte mai Avansate... 3 2.1 Comentarii Inline... 4 2.2 Modificatori Inline... 4 2.3 Gruparea fără

Mai mult

FIŞA DISCIPLINEI

FIŞA DISCIPLINEI FIŞA DISCIPLINEI 1. Date despre program 1.1.Instituţia de învăţământ superior Universitatea SPIRU HARET 1.2.Facultatea Inginerie, Informatică şi Geografie 1.3.Departamentul Informatică şi Geografie 1.4.Domeniul

Mai mult

Microsoft Word - TIC5

Microsoft Word - TIC5 CAPACITATEA CANALELOR DE COMUNICAŢIE CAPITOLUL 5 CAPACITATEA CANALELOR DE COMUNICAŢIE În Capitolul 3, am văzut că putem utiliza codarea sursă pentru a reduce redundanţa inerentă a unei surse de informaţie

Mai mult

D.Rusu, Teoria măsurii şi integrala Lebesgue 6 MĂSURA LEBESGUE Cursul 5 Teorema 6.26 Există submulţimi ale lui R care nu sunt măsurabile Lebesgue. Dem

D.Rusu, Teoria măsurii şi integrala Lebesgue 6 MĂSURA LEBESGUE Cursul 5 Teorema 6.26 Există submulţimi ale lui R care nu sunt măsurabile Lebesgue. Dem D.Rusu, Teoria măsurii şi integrala Lebesgue 6 MĂSURA LEBESGUE Cursul 5 Teorema 6.26 Există submulţimi ale lui R care nu sunt măsurabile Lebesgue. Demonstraţie. Fie mulţimea A = [0, ], pe care definim

Mai mult

Slide 1

Slide 1 Logica fuzzy Precizie si realitate Paternitatea logicii fuzzy Istoric Multimi fuzzy Fuzzy vs. probabilitate Operatii cu multimi fuzzy Implementare Arduino a mf 1 / 27 Precizie si realitate Fuzzy: vag neclar

Mai mult

Curs 10 Aplicaţii ale calculului diferenţial. Puncte de extrem 10.1 Diferenţiale de ordin superior S¼a trecem acum la de nirea diferenţialelor de ordi

Curs 10 Aplicaţii ale calculului diferenţial. Puncte de extrem 10.1 Diferenţiale de ordin superior S¼a trecem acum la de nirea diferenţialelor de ordi Curs 0 Aplicaţii ale calculului diferenţial. Puncte de extrem 0. Diferenţiale de ordin superior S¼a trecem acum la de nirea diferenţialelor de ordin superior. De niţia 0.. Fie n 2; D R k o mulţime deschis¼a

Mai mult

Aggregating Data

Aggregating Data Subinterogări. Subinterogări multi-row. Formatarea rezultatelor unei interogări Obiective Prin parcurgerea acestui referat studentul va dobândi cunoştinţele necesare: identificării funcţiilor grup disponibile;

Mai mult

E_d_Informatica_sp_SN_2014_bar_10_LRO

E_d_Informatica_sp_SN_2014_bar_10_LRO Examenul de bacalaureat naţional 2014 Proba E. d) Informatică Varianta 10 Toate subiectele sunt obligatorii. Se acordă 10 puncte din oficiu. Timpul de lucru efectiv este de 3 ore. În rezolvările cerute,

Mai mult

Raport Național

Raport Național 2016 Raport Național EVALUAREA NAȚIONALĂ LA FINALUL CLASEI A VI-A MATEMATICĂ ȘI ȘTIINȚE Centrul Național de Evaluare și Examinare ENVI 2016 R A P O R T N A Ț I O N A L E N V I 2 0 1 6 M A T E M A T I

Mai mult

MD.09. Teoria stabilităţii 1

MD.09. Teoria stabilităţii 1 MD.09. Teoria stabilităţii 1 Capitolul MD.09. Teoria stabilităţii Cuvinte cheie Soluţie stabilă spre +, instabilă si asimptotic stabilă, punct de echilibru, soluţie staţionară, stabilitatea soluţiei banale,

Mai mult

Microsoft Word - O problema cu bits.doc

Microsoft Word - O problema cu bits.doc O problemă cu bits 1 Tiberiu Socaciu Enunţul Pe pagina Proful de Mate de pe Facebook 2 am primit de la un elev de clasa a IX-a următoarea provocare 3 : Vom oferi două soluţii, una folosind manipulări de

Mai mult

Slide 1

Slide 1 BAZELE ELECTOTEHNICII BE I An I - ETTI CUS 3 Conf. dr.ing.ec. Claudia PĂCUA e-mail: Claudia.Pacurar@ethm.utcluj.ro CICUITE ELECTICE DE CUENT CONTINUU Teorema conservării puterilor Enunț: Puterea primită

Mai mult

Microsoft Word - Curs_07.doc

Microsoft Word - Curs_07.doc 5.3 Modificarea datelor în SQL Pentru modificarea conţinutului unei baze de date SQL pune la dispoziţie instrucţiunile insert, delete şi update. 5.3.1 Inserări în baza de date Sintaxa instrucţiunii insert

Mai mult

MergedFile

MergedFile PROIECT DIDACTIC Clasa a V-a Informatică și T.I.C. Proiect didactic realizat de Anișoara Apostu, profesor Digitaliada, revizuit de Radu Tăbîrcă, inspector școlar Informatică Textul și ilustrațiile din

Mai mult

Guidelines on LGD estimates under downturn conditions_RO.docx

Guidelines on LGD estimates under downturn conditions_RO.docx EBA/GL/2019/03 6 martie 2019 Ghid EBA/GL/2019/03 6 martie 2019 Ghid privind estimarea LGD adecvate unui declin economic ( Estimarea LGD de declin economic ) 1. Obligații de conformare și de raportare Statutul

Mai mult

Microsoft Word - PCLP2_Curs_4_2019.doc

Microsoft Word - PCLP2_Curs_4_2019.doc 12. Tipuri de date derivate direct - Tipul pointer Tipurile de date derivate direct sunt tipuri de date create pe baza unor tipuri de date existente. In limbajul C, un astfel de tip, nestructurat (simplu),

Mai mult

BCBA-BCaBA task list fourth edition romanian

BCBA-BCaBA task list fourth edition romanian BEHAVIOR ANALYST CERTIFICATION BOARD Lista competențelor A patra ediție INTRODUCERE Introducere Lista competenţelor BACB, A patra ediţie, se împarte in trei secţiuni principale: I Prima secţiune, Competenţele

Mai mult

Curs8

Curs8 Curs 8 Analiză sintactică LR(k) Termeni Predicție vezi LL(1) Manșa = simboluri din vârful stivei de lucru care formează (în ordine) pdp Analizor de tip deplasare - reducere: deplasează simboluripentru

Mai mult

Aero-BCD, , Prof. L. Costache & M. Olteanu Notițe de Adrian Manea Seminar 5 Șiruri și serii de funcții. Serii de puteri 1 Șiruri de funcții D

Aero-BCD, , Prof. L. Costache & M. Olteanu Notițe de Adrian Manea Seminar 5 Șiruri și serii de funcții. Serii de puteri 1 Șiruri de funcții D Seminar 5 Șiruri și serii de funcții. Serii de puteri Șiruri de funcții Definiţie.: Fie (f n ) n un șir de funcții, cu fiecare f n : [a, b] R și fie o funcție f : [a, b] R. PC Spunem că șirul (f n ) converge

Mai mult

Acest fișier conține rezumatul anumitor explicații prezente în Curs - privind Sintaxa GNY Totul este legat de Alf = alfabetul de neterminali/ unități

Acest fișier conține rezumatul anumitor explicații prezente în Curs - privind Sintaxa GNY Totul este legat de Alf = alfabetul de neterminali/ unități Acest fișier conține rezumatul anumitor explicații prezente în Curs - privind Sintaxa GNY Totul este legat de Alf = alfabetul de neterminali/ unități lexicale peste care se construiește sintaxa formală

Mai mult

PAS cap. 2: Reprezentări rare p. 1/35 Prelucrarea avansată a semnalelor Capitolul 2: Reprezentări rare Bogdan Dumitrescu Facultatea de Automatică şi C

PAS cap. 2: Reprezentări rare p. 1/35 Prelucrarea avansată a semnalelor Capitolul 2: Reprezentări rare Bogdan Dumitrescu Facultatea de Automatică şi C PAS cap. 2: Reprezentări rare p. 1/35 Prelucrarea avansată a semnalelor Capitolul 2: Reprezentări rare Bogdan Dumitrescu Facultatea de Automatică şi Calculatoare Universitatea Politehnica Bucureşti PAS

Mai mult

Top

Top PROGRAMARE ORIENTATĂ PE OBIECTE Tratarea excepțiilor O excepție este o eroare care poate să apară la rularea unui program. Exemple: încercarea de deschidere a unui fișier ce nu există depășirea limitelor

Mai mult

08_03

08_03 ANUNȚ DE POST VACANT PENTRU CONSTITUIREA UNEI LISTE DE REZERVĂ Titlul postului Grupa de funcții/gradul AD 6 Tip de contract Referință Termenul de depunere a candidaturilor Locul de angajare Specialist

Mai mult

PLAN DE ÎNVĂŢĂMÂNT

PLAN DE ÎNVĂŢĂMÂNT PLAN DE ÎNVĂŢĂMÂNT Valabil începând cu anul universitar 2018-2019 UNIVERSITATEA LUCIAN BLAGA DIN SBIU FACULTATEA DE ŞTIINŢE Programul de studii universitare de licenţă: INFORMATICĂ Domeniul de licenţă:

Mai mult

GHERCĂ MAGDA CASA CORPULUI DIDACTIC BRĂILA PORTOFOLIU EVALUARE INFORMATICĂ ȘI TIC PENTRU GIMNAZIU CLASA A V-A Neamț SERIA 1 GRUPA 1 CURSANT: GHERCĂ G

GHERCĂ MAGDA CASA CORPULUI DIDACTIC BRĂILA PORTOFOLIU EVALUARE INFORMATICĂ ȘI TIC PENTRU GIMNAZIU CLASA A V-A Neamț SERIA 1 GRUPA 1 CURSANT: GHERCĂ G CASA CORPULUI DIDACTIC BRĂILA PORTOFOLIU EVALUARE INFORMATICĂ ȘI TIC PENTRU GIMNAZIU CLASA A V-A Neamț SERIA 1 GRUPA 1 CURSANT: GHERCĂ G MAGDA COLEGIUL NAŢIONAL ROMAN-VODĂ ROMAN PROIECTUL UNITĂŢII DE ÎNVĂŢARE

Mai mult