Documente Academic
Documente Profesional
Documente Cultură
Object-oriented
is
a
programming
paradigm using "objects" usually instances
of a class consisting of data fields and
methods together with their interactions to
design applications and computer programs.
Programming
techniques
may
include
features
such
as
data
abstraction,
encapsulation,
messaging,
modularity,
polymorphism, and inheritance
10
11
Exemple:
12
13
Gramatica :
Unde:
VN
S
S
P
G = (VN, S, S, P )
- multimea de neterminale
- multimea de terminale,
- simbolul initial (de start), S VN
- reguli de productie
Regula de productie :
este un element de forma
-> , V +, V *,
si siruri de terminale si neterminale de lungime
finita ( trebuie sa contina cel putin un neterminal)
V = VN U S se numete alfabetul gramaticii
14
Exemplu:
VN
S
S
P
15
Convenie de notaie:
literele mici de la inceputul alfabetului latin
(a,b,c,...) reprezinta elemente din S (simboli
terminali);
literele mici de la sfirsitul alfabetului latin (u, v, x,...)
reprezinta elemente din S* (siruri de simboli
terminali);
literele mari de la inceputul alfabetului latin (A, B,
C,...) reprezinta elemente din VN (simboli neterminali);
literele mari de la sfirsitul alfabetului latin (U, V,
X,...) reprezinta elemente din VN U S (simboli terminali
sau neterminali);
literele alfabetului grecesc reprezinta siruri din (VN U
S)* (siruri de simboli terminali si neterminali).
16
18
19
Exemplu:
Propoziie
S
Atr
P
C
verb Atr
Verb C
Subst
Adject
Adverb
21
xy => xy
<=> -> P
22
Forma propozitionala :
orice sir V * cu proprietatea S =*>
Propozitie :
orice sir x S* cu proprietatea S =+> x
Tipuri de derivare :
* derivare stanga - in fiecare forma propozitionala
se inlocuieste neterminalul cel mai din stanga
* derivare dreapta- in fiecare forma propozitionala
se inlocuieste neterminalul cel mai din dreapta
23
Tipuri de recursivitate :
24
25
L0
Clasificare :
Limbaje * naturale
L1
L2
* formale (artificiale)
Limbaje * independente de context
* liniare
L3
* regulate
L0 - clasa limbajelor generate din gramatica Chomsky,
L1 - clasa limbajelor dependente de context,
L2 - clasa limbajelor independente de context,
L3 - clasa limbajelor regulate
26
28
31
32
Aciune
utilizator
oprit
pornit
Aciune
utilizator
M = (S, Q, F, q0, f)
unde
S - alfabetul limbajului de intrare al automatului,
Q - multimea finita de stari a automatului,
F - multimea strilor finale ale automatului (FQ),
q0 -stare initiala, q0Q,
f - functia de tranzitie f: QS -> Q.
Configuratie: este numit un dublet (x, q ) , unde x este
sirul de la intrare neanalizat inca; x S* ,iar q Q.
34
q0
1
1
Alfabet S = {0, 1}
Stri Q = {q0, q1, q2}
Starea iniial q0
Stri finale F = {q0, q1}
q1
0,1
0
q2
Tabela de tranziie:
intrri
stri
q0
*q1
q2
0
q0
q2
q2
1
q1
q1
q2
36
<=> f(q, a) = q1
37
38
Stare
initiala
f (q0, a) = q2
q0
f (q0, b) = q1
f (q1, a) = q3
f (q1, b) = q0
f (q2, a) = q0
f (q2, b) = q3
f (q3, a) = q1
f (q3, b) = q2
q1
a
a
q2
a
a
q
q33
39
40
0,1
f (q1, 1) = {q1, q3 }
q1
f (q2, 0) = {q2 , q4 }
f (q2, 1) = q2
f (q3, 0) =
f (q3, 1) = q4
f (q4, 0) =
f (q4, 1) =
0
0,1
q2
q3
q4
Graful de stari
41
Teorema:
Pentru
fiecare
automat
finit
nedeterminist M, exista un automat finit
determinist M echivalent, adica L(M) = L(M).
M(S, Q, F, q0, f)
M(S, Q, F, q0, f )
42
Stri
AFN
AFD
q0, q1, , qn
Starea iniial q0
f
Tranziii
Stri finale
q0}
f({qi1,,qik}, a) = f(qi1, a)
f(qik, a)
FQ
0, 1
AFN:
q0
q1
q2
AFD:
{q0}
0, 1
{q0, q1}
0
{q0, q2}
{q1}
1
0
0
1
{q2}
{q1, q2}
44
Aplicaie facultativ:
Implementarea ntr-un limbaj de programare
oarecare a unei aplicaii care s automatizeze
procesul de deducere a AFD echivalent pentru un
AFN dat.
Intrare: Pentru AFN se vor da, prin intermediul unui
fiier de intrare, alfabetul, mulimea strilor, starea
iniial, mulimea strilor finale, tabelul de definiie
a funciei de tranziie
Ieire: Elementele de definiie ale AFD echivalent i
desenarea grafului de tranziie dup eliminarea
strilor i tranziiilor inutile.
45
46
47
48
1
1
0
E
50
Aplicaie facultativ:
Implementarea ntr-un limbaj de programare
oarecare a unei aplicaii care s automatizeze
procesul de construire a AFN echivalent pentru un
AF- dat.
Intrare: Pentru AF- se vor da, prin intermediul
unui fiier de intrare, alfabetul, mulimea strilor,
starea iniial, mulimea strilor finale, tabelul de
definiie a funciei de tranziie
Ieire: Elementele de definiie ale AFN echivalent i
desenarea grafului de tranziie.
51
0
q0
1
1
q1
0,1
0
q2
52
Aplicaie facultativ:
Implementarea ntr-un limbaj de programare oarecare a unei
aplicaii care s deduc gramatica formal echivalent pentru
un AFD dat.
Intrare: Pentru AFD se vor da, prin intermediul unui fiier de
intrare, alfabetul, mulimea strilor, starea iniial, mulimea
strilor finale, tabelul de definiie a funciei de tranziie
Ieire: Elementele de definiie ale gramaticii formale
echivalente.
Observaii:
53
54
56
58
Text:
abc anaconda ant
Regex: a\w\w\s
Matches: abc anaconda ant
Spaiu alb este definit ca fiind caracterul spaiu
(\0x0020), new line (\n), form feed (\f), carriage
return (\r), tab (\t) i vertical tab (\v).
59
60
Text:
abc pen nda uml
Regex: .[a-d].
Matches: abc pen nda uml
Text:
abc no 0aa i8i
Regex: [a-z0-9]\w\w
Matches: abc no 0aa i8i
61
Text:
Anna Jones and Anne owned an anaconda
Regex: an{2}
Matches: Anna Jones and Anne owned an anaconda
Text:
Anna and Anne lunched with an anaconda annnnnex
Regex: an{2,3}
Matches: Anna and Anne lunched with an anaconda annnnnex
62
63
Pentru operatorii ?,*,+ se va lua secvena cea mai mare de caractere care
se potrivete subexpresiei din care fac parte, i care permite i restului
codului surs s fie analizat.
Dac pentru o subexpresie R1|R2 se potrivete o aceeai secven de
caractere, atunci se va lua n considerare R1.
64
65
66
Aplicaie facultativ:
Implementarea ntr-un limbaj de programare oarecare a unei
aplicaii care s construiasc AFD care accept acelai limbaj
ca i o expresie regulat dat.
Intrare: Expresia regulat.
Ieire:
1. Elementele de definiie ale AF epsilon
echivalent:
alfabetul, mulimea strilor, starea iniial, mulimea
strilor finale, graful de tranziie.
2. Codul care implementeaz funcionarea AFD echivalent
pentru AF epsilon de mai sus.
67
http://news.softpedia.com/news/TheMetaphysics-of-Object-Oriented-Programming24906.shtml
http://www.perlmonks.org/?node_id=349593
http://en.wikipedia.org/wiki/Programming_paradig
m
http://www.scribd.com/doc/22056333/Limbajeformale-%C5%9Fi-automate
http://www.radsoftware.com.au/articles/regexlear
nsyntax.aspx
http://www.radsoftware.com.au/regexdesigner/
Umberto Eco, Limbajul Pmntului Austral, De la
arbore la labirint, edit. POLIROM, 2009.
68