FAPE - Curso de Ciência da Computação Aspectos Teóricos da Computação Professor: Gleifer Vaz...

Post on 16-Apr-2015

111 views 2 download

Transcript of FAPE - Curso de Ciência da Computação Aspectos Teóricos da Computação Professor: Gleifer Vaz...

FAPE - Curso de Ciência da Computação

Aspectos Teóricos da ComputaçãoProfessor: Gleifer Vaz AlvesQuarta Aula - 2006/1

FAPE-2006.1 ATC-04

Conteúdo

Parte II: Linguagens regularesLinguagens regulares Autômatos FinitosAutômatos Finitos Expressões Regulares Gramáticas Regulares

FAPE-2006.1 ATC-04

Introdução

Uma expressão regular (ER) sobre um alfabeto é indutivamente definida: é uma ER que denota a

linguagem vazia. é uma ER que denota a linguagem

contendo exclusivamente a palavra vazia, ou seja {} .

FAPE-2006.1 ATC-04

Expressão Regular

qualquer símbolo x pertencente ao alfabeto é uma ER e denota a linguagem contendo a palavra unitária x, ou seja {x}.

FAPE-2006.1 ATC-04

Operações com expressões

Três operações básicas: Operação de união, Operação de concatenação, Operação de concatenação

sucessiva ou operação estrela.

FAPE-2006.1 ATC-04

ER - Operações

Se r e s são ER´s e denotam respectivamente as linguagens R e S, então:(r+s) é ER e denota a linguagem R S

(rs) é ER e denota a linguagem {uv | u R e v S}(r*) é ER e denota a linguagem R*

FAPE-2006.1 ATC-04

Expressão Regular

Uma linguagem gerada por uma ER r é representada por L(r) ou GERA(r).É possível omitir parênteses, seguindo prioridades nas operações: a concatenação sucessiva tem

prioridade em relação à concatenação e a união, e

a concatenação tem prioridade em relação à união.

FAPE-2006.1 ATC-04

Expressão Regular - exemplos

ER Linguagemaa Palavra aaba* Inicia por b, seguido de zero

ou mais a(a+b)* Todas palavras do alfabeto

{a,b}a*ba*ba*

Todas palavras que têm exatamente dois b´s.

FAPE-2006.1 ATC-04

Expressão Regular - exemplos

ER Linguagem

(a+b)*aa(a+b)*

Todas palavras que têm aa como subpalavra.

(a+b)*(aa+bb)

As palavras que terminam com aa ou bb.

(a+)(b+ba)*

As palavras que não possuem dois a´s consecutivos.

FAPE-2006.1 ATC-04

Expressões e Linguagens

A classe das expressões regulares corresponde exatamente a classe das linguagens regulares.Expressão Regular Linguagem Regular Se r é uma ER, então GERA(r) é

uma linguagem regular

FAPE-2006.1 ATC-04

Expressões e Linguagens

Linguagem Regular Expressão Regular Se L é uma linguagem regular,

então existe uma expressão regular r tal que GERA(r) = L

FAPE-2006.1 ATC-04

Conversão: expressões autômatos

r = a

r =

r =

a

FAPE-2006.1 ATC-04

expressões autômatos

r = ab

r = a + b

a

a b

b

FAPE-2006.1 ATC-04

ER´s e Autômatos

r = a* a

FAPE-2006.1 ATC-04

Gramática

Seja G={N,T,P,S} uma gramática, onde:

N – conjunto de símbolos não-terminais;

T – conjunto de símbolos terminais;P – conjunto de regras de produção;S – símbolo inicial da gramática.

FAPE-2006.1 ATC-04

Gramática

Terminologia:símbolos não-terminais

N = {A,B,C,...T}símbolos terminais

T = {a,b,c,...t}

S N

FAPE-2006.1 ATC-04

Regras de produção

Aplicando as regras de produção definidas na gramáticas são geradas palavras referentes a linguagem que a gramática representa.

Gramática palavrar. de produção

FAPE-2006.1 ATC-04

Regras de produção

Exemplo:G = ( {S,A,B}, {a,b}, P, S )P = { S AB,

A a | AB, B b }

Passos para gerar a palavra: abbS AB ABB aBB abB abb.

FAPE-2006.1 ATC-04

Tipos de Gramática linear

Uma gramática G pode ser: GLD: se todas as regras de

produção são da forma AwB ou A w.

GLE: se todas as regras de produção são da forma ABw ou A w.

FAPE-2006.1 ATC-04

Gramática Regular

Uma gramática regular é qualquer gramática linear.Uma linguagem gerada por uma gramática regular G é representada por L(G) ou GERA(G).

FAPE-2006.1 ATC-04

Exemplos - gramáticas

Linguagem a(ba)* GLD:

G = ( {S,A}, {a,b}, { S aA, A baA | }, S )

GLE: G = ( {S}, {a,b}, { S Sba | a }, S )

FAPE-2006.1 ATC-04

Exemplos - gramáticas

Linguagem (a+b)*(aa+bb)

G = ( {S,A}, {a,b}, P, S )P = { S aS | bS | A, A aa | bb }

FAPE-2006.1 ATC-04

Árvores de derivação

Igualmente é possível representar as produções das gramáticas através de árvores derivação.

S

a S

A

b b

palavra: abb

FAPE-2006.1 ATC-04

Gramática Autômato

Tipo de produção

transição

A (A,)=qf

A a (A,a)=qf

A B (A,)=B

A aB (A,a)=B

FAPE-2006.1 ATC-04

Exemplo: GR AF

Considerando a gramática, G = ( {S,A,B}, {a,b},

{ S aA AbB | B aA }, S )

O AF que reconhece a gramática éM = ({a,b}, {S,A,B,qf}, , S, {qf})

FAPE-2006.1 ATC-04

Exemplo: GR AF

Tipo de produção

transição

S aA (S,a)=A

A bB (A,b)=B

A (A,)=qf

B aA (B,a)=A

FAPE-2006.1 ATC-04

Exemplo: GR AF

S A qf

B

a &

ba

FAPE-2006.1 ATC-04

Exemplo: AF GR

q0 q1 q2

c

b c

a b

Estados terminais: qo, q1 e q2.

FAPE-2006.1 ATC-04

Exemplo: AF GR

Transição Tipo de produção

S A

A

B

C

Correspondências: q0 = A, q1 = B, q2 = C

FAPE-2006.1 ATC-04

Exemplo: AF GR

Transição Tipo de produção

(q0,a)=q0 A aA(q0,b)=q1 A bB(q1,b)=q1 B bB(q1,c)=q2 B cC(q2,c)=q2 C cC

Tarefa: lista de exercícios 4