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

31
FAPE - Curso de Ciência da Computação Aspectos Teóricos da Computação Professor: Gleifer Vaz Alves Quarta Aula - 2006/1

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

Page 1: FAPE - Curso de Ciência da Computação Aspectos Teóricos da Computação Professor: Gleifer Vaz Alves Quarta Aula - 2006/1.

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

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

Page 2: FAPE - Curso de Ciência da Computação Aspectos Teóricos da Computação Professor: Gleifer Vaz Alves Quarta 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

Page 3: FAPE - Curso de Ciência da Computação Aspectos Teóricos da Computação Professor: Gleifer Vaz Alves Quarta Aula - 2006/1.

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 {} .

Page 4: FAPE - Curso de Ciência da Computação Aspectos Teóricos da Computação Professor: Gleifer Vaz Alves Quarta Aula - 2006/1.

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}.

Page 5: FAPE - Curso de Ciência da Computação Aspectos Teóricos da Computação Professor: Gleifer Vaz Alves Quarta Aula - 2006/1.

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.

Page 6: FAPE - Curso de Ciência da Computação Aspectos Teóricos da Computação Professor: Gleifer Vaz Alves Quarta Aula - 2006/1.

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*

Page 7: FAPE - Curso de Ciência da Computação Aspectos Teóricos da Computação Professor: Gleifer Vaz Alves Quarta Aula - 2006/1.

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.

Page 8: FAPE - Curso de Ciência da Computação Aspectos Teóricos da Computação Professor: Gleifer Vaz Alves Quarta Aula - 2006/1.

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.

Page 9: FAPE - Curso de Ciência da Computação Aspectos Teóricos da Computação Professor: Gleifer Vaz Alves Quarta Aula - 2006/1.

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.

Page 10: FAPE - Curso de Ciência da Computação Aspectos Teóricos da Computação Professor: Gleifer Vaz Alves Quarta Aula - 2006/1.

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

Page 11: FAPE - Curso de Ciência da Computação Aspectos Teóricos da Computação Professor: Gleifer Vaz Alves Quarta Aula - 2006/1.

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

Page 12: FAPE - Curso de Ciência da Computação Aspectos Teóricos da Computação Professor: Gleifer Vaz Alves Quarta Aula - 2006/1.

FAPE-2006.1 ATC-04

Conversão: expressões autômatos

r = a

r =

r =

a

Page 13: FAPE - Curso de Ciência da Computação Aspectos Teóricos da Computação Professor: Gleifer Vaz Alves Quarta Aula - 2006/1.

FAPE-2006.1 ATC-04

expressões autômatos

r = ab

r = a + b

a

a b

b

Page 14: FAPE - Curso de Ciência da Computação Aspectos Teóricos da Computação Professor: Gleifer Vaz Alves Quarta Aula - 2006/1.

FAPE-2006.1 ATC-04

ER´s e Autômatos

r = a* a

Page 15: FAPE - Curso de Ciência da Computação Aspectos Teóricos da Computação Professor: Gleifer Vaz Alves Quarta Aula - 2006/1.

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.

Page 16: FAPE - Curso de Ciência da Computação Aspectos Teóricos da Computação Professor: Gleifer Vaz Alves Quarta Aula - 2006/1.

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

Page 17: FAPE - Curso de Ciência da Computação Aspectos Teóricos da Computação Professor: Gleifer Vaz Alves Quarta Aula - 2006/1.

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

Page 18: FAPE - Curso de Ciência da Computação Aspectos Teóricos da Computação Professor: Gleifer Vaz Alves Quarta Aula - 2006/1.

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.

Page 19: FAPE - Curso de Ciência da Computação Aspectos Teóricos da Computação Professor: Gleifer Vaz Alves Quarta Aula - 2006/1.

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.

Page 20: FAPE - Curso de Ciência da Computação Aspectos Teóricos da Computação Professor: Gleifer Vaz Alves Quarta Aula - 2006/1.

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).

Page 21: FAPE - Curso de Ciência da Computação Aspectos Teóricos da Computação Professor: Gleifer Vaz Alves Quarta Aula - 2006/1.

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 )

Page 22: FAPE - Curso de Ciência da Computação Aspectos Teóricos da Computação Professor: Gleifer Vaz Alves Quarta Aula - 2006/1.

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 }

Page 23: FAPE - Curso de Ciência da Computação Aspectos Teóricos da Computação Professor: Gleifer Vaz Alves Quarta Aula - 2006/1.

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

Page 24: FAPE - Curso de Ciência da Computação Aspectos Teóricos da Computação Professor: Gleifer Vaz Alves Quarta Aula - 2006/1.

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

Page 25: FAPE - Curso de Ciência da Computação Aspectos Teóricos da Computação Professor: Gleifer Vaz Alves Quarta Aula - 2006/1.

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})

Page 26: FAPE - Curso de Ciência da Computação Aspectos Teóricos da Computação Professor: Gleifer Vaz Alves Quarta Aula - 2006/1.

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

Page 27: FAPE - Curso de Ciência da Computação Aspectos Teóricos da Computação Professor: Gleifer Vaz Alves Quarta Aula - 2006/1.

FAPE-2006.1 ATC-04

Exemplo: GR AF

S A qf

B

a &

ba

Page 28: FAPE - Curso de Ciência da Computação Aspectos Teóricos da Computação Professor: Gleifer Vaz Alves Quarta Aula - 2006/1.

FAPE-2006.1 ATC-04

Exemplo: AF GR

q0 q1 q2

c

b c

a b

Estados terminais: qo, q1 e q2.

Page 29: FAPE - Curso de Ciência da Computação Aspectos Teóricos da Computação Professor: Gleifer Vaz Alves Quarta Aula - 2006/1.

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

Page 30: FAPE - Curso de Ciência da Computação Aspectos Teóricos da Computação Professor: Gleifer Vaz Alves Quarta Aula - 2006/1.

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

Page 31: FAPE - Curso de Ciência da Computação Aspectos Teóricos da Computação Professor: Gleifer Vaz Alves Quarta Aula - 2006/1.

Tarefa: lista de exercícios 4