Sunteți pe pagina 1din 2

2.4.

Expresii regulate
S considerm urmtorul exemplu n care folosim operaiile cu limbaje definite n
1.3:
Exemplul 2.4.1 Fie urmtoarele dou alfabete:
L={A,B,,Z,a,b,,z}, alfabetul literelor mari i mici
C={0,1,,9}, alfabetul cifrelor din baza 10.
Cu aceste alfabete, pe care le putem chiar considera limbaje formate din cuvinte de
lungime 1, putem construi numeroase alte limbaje, cum ar fi:
L C = mulimea literelor i a cifrelor;
(a)
(b)
LC = mulimea cuvintelor de lungime 2, formate din o liter urmat de o cifr;
(c)
L4 = mulimea cuvintelor formate din exact patru litere;
(d)
L* = mulimea cuvintelor formate din oricte litere (inclusiv cuvntul vid);
(e)
L( L C )* = mulimea cuvintelor de lungime cel puin 1, formate din litere i
cifre, primul caracter fiind obligatoriu o liter;
(f)
C+ = mulimea irurilor numerice formate din cel puin o cifr.
Modul de reprezentare al limbajelor de mai sus sugereaz un alt mod de descriere
al limbajelor de tip 3 i anume cu ajutorul expresiilor regulate.
Definiia 2.4.1 Se numete expresie regulat o expresie care poate fi construit cu
urmtoarele reguli:
1.
este o expresie regulat indicnd mulimea vid.
2.
este o expresie regulat indicnd limbajul format doar din cuvntul vid,
{}.
3.
Dac a VT , atunci a este o expresie regulat indicnd limbajul format
dintr-un cuvnt de lungime 1, construit cu simbolul a i anume limbajul {a}.
4.
Dac e1 i e2 sunt expresii regulate indicnd limbajele L1 i L2, atunci
urmtoarele expresii sunt regulate:
a)
Alternarea (e1)|(e2), indicnd L1 L 2 ;
b)
Concatenarea (e1)(e2), indicnd L1 L 2 ;

c)
nchiderea Kleene (e1*), indicnd L1 .
Observaia 2.4.1 Parantezele ( ) pot fi eliminate n urmtoarele cazuri:
({ }) = { }
(|)
= |
(( )) = ( )
Observaia 2.4.2
a) Operaiile de alternare, |, concatenare, ., i nchidere, *, au precedena descrescnd
de la cea mai mare , , la cea mai mic , | .
b) Toate operaiile sunt asociative iar alternarea este i comutativ.
Exist un numr de reguli algebrice pentru expresii regulate care pot fi folosite pentru a
le transforma n alte expresii echivalente, conform tabelului urmtor.
Tabelul 2.4.1
Regul
Descriere
r|s=s|r
Alternarea este comutativ
r|(s|t)=(r|s)|t
Alternarea este asociativ

(rs)t=r(st)
Concatenarea este asociativ
r(s|t)=(rs)|(rt)
Concatenarea este distributiv la stnga
(s|t)r=(sr)|(tr)
i la dreapta fa de alternare
r=r
Cuvntul vid este element neutru pentru concatenare
r=r
r*=(r|)*
r**=r*
Idempotena nchiderii (produs Kleene)
Operatorii folosii pentru scrierea expresiilor regulate sunt analogi cu forma BNF
de descriere a limbajelor (sunt simboluri ale metalimbajului).
Exemplul 2.4.2 Exemple de expresii regulate:
a)
Expresia 110 reprezint limbajul format dintr-un singur cuvnt {110}.
b)
Expresia 0|1 reprezint limbajul {0,1}.
c)
Expresia 1* reprezint limbajul {1i | i=0,1,2,}.
m n
d)
a*b* reprezint limbajul a b m, n 0 ;
m
e)
(ab)* reprezint limbajul (ab) m 0 ;
f)
(aa|ab|ba|bb)* reprezint mulimea irurilor peste {a,b} de lungime par.
Vom defini n continuare egalitatea a dou expresii regulate.
Definiia 2.4.3 Dou expresii regulate sunt egale (=) sau echivalente dac ele reprezint
acelai limbaj.
Exemplul 2.4.4 00* = 000*|0 (ele reprezint acelai limbaj, al irurilor peste alfabetul
{0} formate din cel puin un simbol 0).
Exemplul 2.4.5 Elementele unui limbaj de programare pot fi definite att n termenii
gramaticilor regulate ct i n cei ai expresiilor regulate. Spre exemplu, un identificator
format din litere mici i cifre, ncepnd cu o liter, poate fi descris de gramatica regulat
ale crei reguli sunt:

S aA | bA | cA | ... | zA | a | b | c | ... | z
A aA | bA | cA | ... | zA | 0A | 1A | ... | 9A | a | b | c | ... | z | 0 | 1| ... | 9

i de expresia regulat:
(a|b|c| . . . |z) (a|b|c| . . . |z|0|1| . . . |9)*
Putem folosi <liter> pentru a scurta reprezentarea lui a | b | c | ... | z i <cifr> pentru
0 | 1 | ... | 9 , expresia putnd fi scris n acest caz astfel:
<liter>(<liter>|<cifr>* .

S-ar putea să vă placă și

  • Curs 5
    Curs 5
    Document44 pagini
    Curs 5
    diana
    Încă nu există evaluări
  • Balanta de Verificare
    Balanta de Verificare
    Document1 pagină
    Balanta de Verificare
    diana
    Încă nu există evaluări
  • Conta - Comert 2015
    Conta - Comert 2015
    Document24 pagini
    Conta - Comert 2015
    Ramona V. Gheorghiu
    Încă nu există evaluări
  • UI 5 Concurenta
    UI 5 Concurenta
    Document13 pagini
    UI 5 Concurenta
    Oana Vasile
    Încă nu există evaluări
  • Curs 3
    Curs 3
    Document21 pagini
    Curs 3
    diana
    Încă nu există evaluări
  • Curs 6
    Curs 6
    Document27 pagini
    Curs 6
    diana
    Încă nu există evaluări
  • CSIE ID An I Tema Contabilitate
    CSIE ID An I Tema Contabilitate
    Document5 pagini
    CSIE ID An I Tema Contabilitate
    diana
    Încă nu există evaluări
  • Registrul Jurnal
    Registrul Jurnal
    Document1 pagină
    Registrul Jurnal
    diana
    Încă nu există evaluări
  • CSIE ID An I Tema Contabilitate
    CSIE ID An I Tema Contabilitate
    Document5 pagini
    CSIE ID An I Tema Contabilitate
    diana
    Încă nu există evaluări
  • Curs 2
    Curs 2
    Document8 pagini
    Curs 2
    diana
    Încă nu există evaluări
  • Balanta de Verificare
    Balanta de Verificare
    Document1 pagină
    Balanta de Verificare
    diana
    Încă nu există evaluări
  • String Tutorial
    String Tutorial
    Document94 pagini
    String Tutorial
    cristina
    Încă nu există evaluări
  • Curs 2
    Curs 2
    Document8 pagini
    Curs 2
    diana
    Încă nu există evaluări
  • Curs 2
    Curs 2
    Document8 pagini
    Curs 2
    diana
    Încă nu există evaluări
  • String Tutorial
    String Tutorial
    Document94 pagini
    String Tutorial
    cristina
    Încă nu există evaluări
  • Curs 3
    Curs 3
    Document21 pagini
    Curs 3
    diana
    Încă nu există evaluări
  • Intrebari Examen C
    Intrebari Examen C
    Document3 pagini
    Intrebari Examen C
    diana
    Încă nu există evaluări
  • Curs 2
    Curs 2
    Document8 pagini
    Curs 2
    diana
    Încă nu există evaluări