AMDA CALCUL - Modelarea unor notiuni de programare orientata pe obiecte

Cuprins
I _-calcul _si programare orientat_a pe obiecte 6
1 Not_iuni _si notat_ii ale _-calculului 7
1.1 _-notat_ia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . 7
1.1.1 Tipuri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 9
1.2 _-calcul cu tipuri . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . 9
1.2.1 Rescriere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 10
1.2.2 Calculul tipurilor . . . . . . . . . . . . . . . . . . . . . . . . .
. . 11
1.2.3 Propritet_at_i . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 12
1.2.4 Corectitudinea sistemului de tipuri . . . . . . . . . . . . . . . . .
13
1.2.5 Operatori de punct _x . . . . . . . . . . . . . . . . . . . . . . . .
13
1.3 Subtipuri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . 14
1.3.1 __-calculul . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 14
1.3.2 Algoritm de calcul al tipurilor . . . . . . . . . . . . . . . . . . .
. 15
1.3.3 Corectitudinea sistemului de tipuri . . . . . . . . . . . . . . . . .
17
1.4 ^Inregistr_ari . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . 17
1.5 Produs cartezian . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . 18
1.6 Tipuri recursive . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . 18
2 _&-calcul 20
2.1 Prezentare inituitiv_a . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . 20
2.1.1 Subtipuri, supra^_nc_arcare _si legare t^arzie . . . . . . . . . . .
. . . 21
2.2 Sintaxa _&-calculului . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . 21
2.2.1 Subtipuri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 22
2.2.2 Tipuri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 23
2.2.3 Termeni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 24
2.2.4 Sistemul de tipuri . . . . . . . . . . . . . . . . . . . . . . . . .
. . 24
2.2.5 Reguli de rescriere . . . . . . . . . . . . . . . . . . . . . . . . .
. 25
2.3 Corectitudinea sistemului de tipuri . . . . . . . . . . . . . . . . . .
. . . 27
2.4 Codi_c_ari . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . 32
2.4.1 Produse carteziene . . . . . . . . . . . . . . . . . . . . . . . . .
. 32
1
2.4.2 ^Inregistr_ari simple . . . . . . . . . . . . . . . . . . . . . . . .
. . 32
2.4.3 ^Inregistr_ari dinamice . . . . . . . . . . . . . . . . . . . . . . .
. . 33
3 Programare orientat_a pe obiecte 35
3.1 Concepte de baz_a . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . 35
3.1.1 Speci_cul transmiterii mesajelor . . . . . . . . . . . . . . . . . .
. 36
3.1.2 Supra^_nc_arcare . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 37
3.2 Modelare ^_n _&-calcul . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . 38
3.3 Analogia obiecte !^_nregistr_ari . . . . . . . . . . . . . . . . . . .
. . . 41
3.4 Mo_stenire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . 42
3.4.1 Mo_stenirea ^_n analogia obiecte !^_nregistr_ari . . . . . . . . . .
42
3.4.2 Mo_stenire ^_n _&-calcul . . . . . . . . . . . . . . . . . . . . . .
. . 42
3.5 Metode binare _si alegere multipl_a . . . . . . . . . . . . . . . . . .
. . . . 43
3.6 Extinderea claselor . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . 46
3.7 Clase abstracte . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . 46
II Limbajul ned 48
4 Descrierea limbajului 49
4.1 Instruct_iuni . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . 49
4.1.1 Instruct_iunea de alegere nedeterminist_a . . . . . . . . . . . . . .
. 50
4.1.2 Instruct_iunea de decizie . . . . . . . . . . . . . . . . . . . . . .
. 50
4.1.3 Instruct_iuni de ciclare . . . . . . . . . . . . . . . . . . . . . .
. . 51
4.2 Expresii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . 52
4.2.1 Operatori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 52
4.2.2 Atribuire multipl_a . . . . . . . . . . . . . . . . . . . . . . . . .
. . 53
5 Implementare 54
5.1 Prezentare general_a . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . 54
5.2 Parsare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . 55
5.3 Codul generat . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . 57
A Speci_carea limbajului ned 58
B Declararea except_iilor 60
C Declararea clasei Stack 61
D Declararea unor clase folosite la parsare 62
E Declararea claselor Token _si Symbol 64
2
F Declararea clasei Prod 66
Bibliogra_e 67

Niciun comentariu:

Trimiteți un comentariu