Você está na página 1de 19

Expresses Regulares e

Linguagens
Juliana Amorim Guimares

Computabilidade e Complexidade UFES Alegre

Linguagens

Linguagem (L): conjunto de palavras sobre

L=

Comumente representada por notao de conjuntos:

L = {2 | 2 < w 100}

Linguagem regular: linguagem formal que pode


ser expressa usando expresses regulares.

Utilizadas para descrever dispositivos de


computaes simples.

Expresses Regulares

Notao para definio de linguagens

Denotam estruturas de dados - Strings

Igual aos descritos pelos autmatos

Ex.:
[A-Z][a-z]*[ ][A-Z][A-Z]

Podem ser consideradas uma linguagem de


programao

Alternativa AFN

Expresses Regulares

Descrio algbrica

Definem linguagens diversas

Diferem de autmatos

Modo declarativo

Linguagem de entrada para sistemas que


processam strings:

Geradores de analisadores lxicos

Comandos de pesquisa (grep)

Operadores de ER

A Unio +

A Concatenao .

O Fechamento *

Exemplos:
Se L={0,1}, L* representa todos os strings 0's e 1's.
Se L={0,11}, L* representa todos os strings 0's e 1's,
tais que os smbolos 1 formam pares.

L* a unio infinita

Algebra ER

Expresses regulares podem ser descritas


recursivamente:

Base: Divide-se em trs partes:


As constantes e so expresses regulares,
denotando as linguagens{} e ,
respectivamente.

Se a qualquer smbolo, ento a uma


expresso regular, Essa expresso denota a
linguagem {a}. Isto L(a)={a}.

Uma varivel, em geral escrita em maiscula e


em itlico, como L, uma varivel que
representa qualquer linguagem.

Algebra ER

Induo: Divide-se em 4 partes


Se E e F so expresses regulares, ento E+F
uma expresso regular denotando a unio de
L(E) e L(F).
Se E e F so expresses regulares, ento EF
uma expresso regular denotando a
concatenao de L(E) e L(F).
Se E uma expresso regular, ento E* uma
expresso regular denotando o fechamento de
L(E).
Se E uma expresso regular, ento (E)
tambm uma expresso regular, denotando a
mesma linguagem que E.

Precedncia de Operadores

Precedncia predefinida

O operador estrela o de precedncia mais alta.

Em seguida, temos o operador de concatenao.

Por ltimo, as unies.


Ex.:
01*+1
1*+0*1*+0
1011*+0

Exerccios

Escreva expresses regulares correspondentes s


seguintes linguagens:

O conjunto de strings sobre o alfabeto {a,b,c}


que contm pelo menos um a e pelo menos um
b.

O conjunto de strings de 0's e 1's com no mximo um


par de 1's concatenados.

Gramticas Regulares

Gramticas Regulares

Utilizada para gerar linguagens regulares

Mostra como gerar todas as palavras de LR

Conjunto de regras

Varivel de partida

Qualquer derivao deve comear com a varivel


de partida

Gramticas Regulares

Elementos principais:

Variveis: smbolos auxiliares para a gerao de


palavras

Terminais: smbolos do alfabeto da linguagem definida

Regras de produo: par ordenado (u,v) representado


por u v, sendo u e v palavras formadas com smbolos
de 2 conjuntos: variveis e terminais.

Formas sentenciais: palavras variveis e/ou


terminais geradas a partir da varivel de partida.

Sentena: forma sentencial sem variveis

Gramticas Regulares

Um conjunto de sentenas geradas pela gramtica


G chamada de linguagem gerada
L(G)

Uma gramtica uma tupla (V, , P, S), onde:

V o conjunto finito de smbolos variveis ou noterminais

o conjunto finito , disjunto de V, denominado


terminais

P um conjunto finito de regras de produo

S a varivel de partida

Gramticas Lineares

Seja G = (V, , R, P) uma gramtica e sejam A e B


elementos de V e w uma palavra de *, ento G uma:

Gramtica Linear Direita (GLD): se todas as regras de


produo so da forma:
A wB ou A w

Gramtica Linear Esquerda (GLE): se todas as regras de


produo so da forma:
A Bw ou A w

Gramtica Linear Unitria Direita (GLUD): se todas as regras


de produo so como na GLD acrescido de
|w| 1

Gramtica Linear Unitria Esquerda (GLUE): se todas as


regras de produo so como na linear esquerda acrescido
de |w| 1

Gramticas Regulares

Uma gramtica regular qualquer gramtica linear

Seja a gramtica G constituda da varivel de


partida P e das regras:

P aAbc

A aAbC

Cb bC

Cc cc

Gramticas Regulares

Exemplos de derivao:

Logo, a3b3c3 L(G)

Podemos definir:
L(G) = {anbncn| n 1}

Gramticas Regulares

Construa uma gramtica regular para a seguinte


linguagem sobre o alfabeto {0,1}:
L = {w * | w inicia sempre por 1 e termina sempre com 0}
G = (V, , R, P)

Gramticas Regulares

Construa uma gramtica regular para a seguinte


linguagem sobre o alfabeto {0,1}:
L = {w * | w inicia sempre por 1 e termina sempre com 0}
G = (V, , R, S)
V = {S, R}
= {0,1}
P = {S 1R, R 0, R 1R, R 0R}

Gramticas Regulares

Construa uma gramtica regular para a seguinte


linguagem sobre o alfabeto {0,1}:

a) L = {w +}
b) L = {w * | w tem no mximo tamanho 3}

Você também pode gostar