INE5317 Linguagens Formais e Compiladores AULA 6 ...silveira/INE5317/Laminas/INE5317Aula6.pdf ·...

46
INE 5317 Linguagens Formais e Compiladores Ricardo Azambuja Silveira INE-CTC-UFSC E-Mail: [email protected] URL: www.inf.ufsc.br/~silveira AULA 6: Propriedades das Linguagens Regulares baseado em material produzido pelo prof Paulo Bauth Menezes e pelo prof Olinto José Varela Furtado

Transcript of INE5317 Linguagens Formais e Compiladores AULA 6 ...silveira/INE5317/Laminas/INE5317Aula6.pdf ·...

Page 1: INE5317 Linguagens Formais e Compiladores AULA 6 ...silveira/INE5317/Laminas/INE5317Aula6.pdf · 06/30/06 Ricardo Silveira 5 Autômatos finitos X complexidade de algoritmos Autômatos

INE5317 Linguagens Formais e

Compiladores

Ricardo Azambuja SilveiraINE-CTC-UFSC

E-Mail: [email protected]: www.inf.ufsc.br/~silveira

AULA 6: Propriedades das Linguagens Regulares

baseado em material produzido pelo prof Paulo Bauth Menezes e pelo prof Olinto José Varela Furtado

Page 2: INE5317 Linguagens Formais e Compiladores AULA 6 ...silveira/INE5317/Laminas/INE5317Aula6.pdf · 06/30/06 Ricardo Silveira 5 Autômatos finitos X complexidade de algoritmos Autômatos

06/30/06 Ricardo Silveira 2

Propriedades das LR● LR podem ser representadas por formalismos

– pouca complexidade– grande eficiência– fácil implementação

● Entretanto, por ser uma classe relativamente simples– é restrita e limitada– fácil definir linguagens não-regulares

Page 3: INE5317 Linguagens Formais e Compiladores AULA 6 ...silveira/INE5317/Laminas/INE5317Aula6.pdf · 06/30/06 Ricardo Silveira 5 Autômatos finitos X complexidade de algoritmos Autômatos

06/30/06 Ricardo Silveira 3

Questões de interesse● como determinar se uma linguagem é regular?● é fechada para operações de união,

concatenação e intersecção?● como verificar se uma LR é infinita, finita ou

vazia?● é possível analisar duas LR e concluir se são

iguais ou diferentes?

Page 4: INE5317 Linguagens Formais e Compiladores AULA 6 ...silveira/INE5317/Laminas/INE5317Aula6.pdf · 06/30/06 Ricardo Silveira 5 Autômatos finitos X complexidade de algoritmos Autômatos

06/30/06 Ricardo Silveira 4

Análise de cada propriedade● desenvolvida para um dos formalismos

estudados para os demais: é suficiente traduzi-los

Page 5: INE5317 Linguagens Formais e Compiladores AULA 6 ...silveira/INE5317/Laminas/INE5317Aula6.pdf · 06/30/06 Ricardo Silveira 5 Autômatos finitos X complexidade de algoritmos Autômatos

06/30/06 Ricardo Silveira 5

Autômatos finitos X

complexidade de algoritmos● Autômatos finitos pertencem à classe de algoritmos

– mais eficientes em termos de tempo de processamento– supondo que toda a entrada necessita ser lida

● Qq autômato finito que solucione um problema é igualmente eficiente– a menos de eventual redundância de estados– não influi no tempo de processamento

● Redundância de estados pode ser facilmente eliminada– Autômato Finito (Determinístico) Mínimo

Page 6: INE5317 Linguagens Formais e Compiladores AULA 6 ...silveira/INE5317/Laminas/INE5317Aula6.pdf · 06/30/06 Ricardo Silveira 5 Autômatos finitos X complexidade de algoritmos Autômatos

06/30/06 Ricardo Silveira 6

Bombeamento para as LR● Lema do Bombeamento

– útil no estudo das propriedades das LR● Idéia básica

– se uma linguagem é regular, então● é aceita por um AFD com n estados

– se o autômato reconhece w de comprimento maior ou igual a n

● assume algum estado q mais de uma vez● existe um ciclo na função programa que passa por q

Page 7: INE5317 Linguagens Formais e Compiladores AULA 6 ...silveira/INE5317/Laminas/INE5317Aula6.pdf · 06/30/06 Ricardo Silveira 5 Autômatos finitos X complexidade de algoritmos Autômatos

06/30/06 Ricardo Silveira 7

Bombeamento para as LR● w pode ser dividida em três subpalavras w = uvz tal que

– | uv | ≤ n, | v | ≥ 1– v é a parte de w reconhecida pelo ciclo, que pode ser

executado (bombeado) zero ou mais vezes– Portanto

● para qualquer i ≥ 0, uviz, é aceita pelo autômato

Page 8: INE5317 Linguagens Formais e Compiladores AULA 6 ...silveira/INE5317/Laminas/INE5317Aula6.pdf · 06/30/06 Ricardo Silveira 5 Autômatos finitos X complexidade de algoritmos Autômatos

06/30/06 Ricardo Silveira 8

Lema do bombeamento para as LR

● Se L é LR, então:– existe uma constante n tal que,

● para qualquer palavra w de L onde | w | ≥ n,● w pode ser definida como w = uvz

– | uv | ≤ n,– | v | ≥ 1

– sendo que, para todo i ≥ 0, uviz é palavra de L● Prova (direta):

● Se L é uma LR, então existe um AFD M = (Σ, Q, δ, q0, F) tal que ACEITA(M) = L

Page 9: INE5317 Linguagens Formais e Compiladores AULA 6 ...silveira/INE5317/Laminas/INE5317Aula6.pdf · 06/30/06 Ricardo Silveira 5 Autômatos finitos X complexidade de algoritmos Autômatos

06/30/06 Ricardo Silveira 9

Prova

Page 10: INE5317 Linguagens Formais e Compiladores AULA 6 ...silveira/INE5317/Laminas/INE5317Aula6.pdf · 06/30/06 Ricardo Silveira 5 Autômatos finitos X complexidade de algoritmos Autômatos

06/30/06 Ricardo Silveira 10

Prova

Page 11: INE5317 Linguagens Formais e Compiladores AULA 6 ...silveira/INE5317/Laminas/INE5317Aula6.pdf · 06/30/06 Ricardo Silveira 5 Autômatos finitos X complexidade de algoritmos Autômatos

06/30/06 Ricardo Silveira 11

Exemplo de bombeamento

Page 12: INE5317 Linguagens Formais e Compiladores AULA 6 ...silveira/INE5317/Laminas/INE5317Aula6.pdf · 06/30/06 Ricardo Silveira 5 Autômatos finitos X complexidade de algoritmos Autômatos

06/30/06 Ricardo Silveira 12

Investigar se uma linguagem é regular ou não

● ◆ Mostrar que é LR– representar usando um dos formalismos regulares

● ◆ Mostrar que não é LR– Utilizar o Lema do Bombeamento

Page 13: INE5317 Linguagens Formais e Compiladores AULA 6 ...silveira/INE5317/Laminas/INE5317Aula6.pdf · 06/30/06 Ricardo Silveira 5 Autômatos finitos X complexidade de algoritmos Autômatos

06/30/06 Ricardo Silveira 13

Exemplo: Prove que L não é Regular

● L = { w | w possui o mesmo número de símbolos a e b }– Por absurdo. Suponha que L é regular

● existe AFD M com n estados que aceita L– Seja w = anbn sendo | w | = 2n ≥ n. Logo w = uvz tq

● | uv | ≤ n● | v | ≥ 1● para todo i ≥ 0, u vi z é palavra de L

– Absurdo !!! Como | uv | ≤ n– • uv é composta exclusivamente por símbolos a– • uv2z não pertence a L (número de a será maior que o de

b)

Page 14: INE5317 Linguagens Formais e Compiladores AULA 6 ...silveira/INE5317/Laminas/INE5317Aula6.pdf · 06/30/06 Ricardo Silveira 5 Autômatos finitos X complexidade de algoritmos Autômatos

06/30/06 Ricardo Silveira 14

Operações fechadas sobre LR● Operações sobre LR podem ser usadas para

– álgebra de LR● construir novas linguagens a partir de linguagens

conhecidas– provar propriedades– construir algoritmos

● Classe de Linguagens Regulares é fechada para– união– concatenação– complemento– intersecção

Page 15: INE5317 Linguagens Formais e Compiladores AULA 6 ...silveira/INE5317/Laminas/INE5317Aula6.pdf · 06/30/06 Ricardo Silveira 5 Autômatos finitos X complexidade de algoritmos Autômatos

06/30/06 Ricardo Silveira 15

Prova● União e concatenação

– Decorrem das difinições das expressões regulares● Se r e s são expressões regulares, rs e r+s também são

● Complemento– Suponha L, LR sobre Σ*. Então

● existe AFD M = (Σ, Q, δ, q0, F) tal que ACEITA(M) = L– Idéia:

● inverter condições ACEITA/REJEITA de M para reconhecer ~L

– como fazer?● e se δ for não-total (rejeitar por indefinição)?

Page 16: INE5317 Linguagens Formais e Compiladores AULA 6 ...silveira/INE5317/Laminas/INE5317Aula6.pdf · 06/30/06 Ricardo Silveira 5 Autômatos finitos X complexidade de algoritmos Autômatos

06/30/06 Ricardo Silveira 16

complemento

Page 17: INE5317 Linguagens Formais e Compiladores AULA 6 ...silveira/INE5317/Laminas/INE5317Aula6.pdf · 06/30/06 Ricardo Silveira 5 Autômatos finitos X complexidade de algoritmos Autômatos

06/30/06 Ricardo Silveira 17

Intersecção● Suponha L1 e L2 LR

– Propriedade de DeMorgan para conjuntos● L1 ∩ L2 = ~(~L1 ~L2)∪

– Como a Classe das LR é fechada para complemento e união então também é fechada para a intersecção

Page 18: INE5317 Linguagens Formais e Compiladores AULA 6 ...silveira/INE5317/Laminas/INE5317Aula6.pdf · 06/30/06 Ricardo Silveira 5 Autômatos finitos X complexidade de algoritmos Autômatos

06/30/06 Ricardo Silveira 18

Exemplo de complemento

Page 19: INE5317 Linguagens Formais e Compiladores AULA 6 ...silveira/INE5317/Laminas/INE5317Aula6.pdf · 06/30/06 Ricardo Silveira 5 Autômatos finitos X complexidade de algoritmos Autômatos

06/30/06 Ricardo Silveira 19

Linguagem vazia, finita ou infinita

● Teorema: Linguagem Regular Vazia, Finita ou Infinita– Se L é LR aceita por um autômato finito M = (Σ, Q,

δ, q0, F) com n estados, então L é● Vazia sse M não aceita qualquer palavra w tal

que | w | < n● Finita sse M não aceita qualquer palavra w tal

que n ≤ | w | < 2n● Infinita sse M aceita palavra w tal que n ≤ | w | <

2n

Page 20: INE5317 Linguagens Formais e Compiladores AULA 6 ...silveira/INE5317/Laminas/INE5317Aula6.pdf · 06/30/06 Ricardo Silveira 5 Autômatos finitos X complexidade de algoritmos Autômatos

06/30/06 Ricardo Silveira 20

Exemplo LR infinita

Page 21: INE5317 Linguagens Formais e Compiladores AULA 6 ...silveira/INE5317/Laminas/INE5317Aula6.pdf · 06/30/06 Ricardo Silveira 5 Autômatos finitos X complexidade de algoritmos Autômatos

06/30/06 Ricardo Silveira 21

Igualdade de LR● Teorema mostra que

– existe um algoritmo para verificar se dois autômatos finitos são equivalentes

● reconhecem a mesma linguagem● Importante conseqüência

– existe um algoritmo que permite verificar se duas implementações são equivalentes

Page 22: INE5317 Linguagens Formais e Compiladores AULA 6 ...silveira/INE5317/Laminas/INE5317Aula6.pdf · 06/30/06 Ricardo Silveira 5 Autômatos finitos X complexidade de algoritmos Autômatos

06/30/06 Ricardo Silveira 22

Igualdade das LR● Teorema: Igualdade de Linguagens Regulares

– Se M1 e M2 são AF, então existe um algoritmo para determinar se

● ACEITA(M1) = ACEITA(M2)● Prova: (direta)

– Suponha M1 e M2 AF tais que ACEITA(M1) = L1 e ACEITA(M2) = L2

– Portanto, é possível construir um AF M3 tal que ACEITA(M3) = L3

● L3 = (L1 ∩ ~L2) (~L1 ∩ L2)∪● Claramente, L1 = L2 sse L3 é vazia

– existe um algoritmo para verificar se uma LR é vazia

Page 23: INE5317 Linguagens Formais e Compiladores AULA 6 ...silveira/INE5317/Laminas/INE5317Aula6.pdf · 06/30/06 Ricardo Silveira 5 Autômatos finitos X complexidade de algoritmos Autômatos

06/30/06 Ricardo Silveira 23

Minimização de AFD● Complexidade de algoritmos

– autômatos finitos pertencem à classe de algoritmos mais eficientes

● em termos de tempo de processamento● supondo que toda a fita de entrada necessita ser lida

● Tempo de processamento– não depende do autômato considerado– qualquer AFD

● que reconheça a linguagem● terá a mesma eficiência

● Otimização possível– minimização do número de estados

Page 24: INE5317 Linguagens Formais e Compiladores AULA 6 ...silveira/INE5317/Laminas/INE5317Aula6.pdf · 06/30/06 Ricardo Silveira 5 Autômatos finitos X complexidade de algoritmos Autômatos

06/30/06 Ricardo Silveira 24

Minimização de AFD● Definição: Um A.F.D. é mínimo se:

● Não possui estados inacessíveis;● Não possui estados mortos;● Não possui estados equivalentes.

– Um estado q ∈ K é inacessível (ou inalcançável) quando não existe w1 tal que a partir de qo, q seja alcançado; ou seja, não existe w

1 | δ (qo, w

1) = q,

onde w1 é uma sentença ou parte dela.

– Um estado q ∈ K é morto se ele ∉ F ∧ ∃ w1 | δ (q, w1) = p, onde p ∈ F ∧

w1 é uma sentença ou parte dela, ou seja, q é morto se ele não é final e a

partir dele nenhum estado final pode ser alcançado

Page 25: INE5317 Linguagens Formais e Compiladores AULA 6 ...silveira/INE5317/Laminas/INE5317Aula6.pdf · 06/30/06 Ricardo Silveira 5 Autômatos finitos X complexidade de algoritmos Autômatos

06/30/06 Ricardo Silveira 25

Minimização de AFD● Estados Equivalentes:

– Um conjunto de estados q1, q2, ..., qj são equivalentes entre sí, se eles pertencem a uma mesma classe de equivalência.

● Classes de Equivalência (CE):– Um conjunto de estados q1, q2, ..., qj está em uma

mesma CE se δ(q1, a), δ(q2, a), ..., δ(qj, a), para cada a ∈ Σ, resultam respectivamente nos estados qi, qi+1, ..., qn, e estes pertencem a uma mesma CE.

Page 26: INE5317 Linguagens Formais e Compiladores AULA 6 ...silveira/INE5317/Laminas/INE5317Aula6.pdf · 06/30/06 Ricardo Silveira 5 Autômatos finitos X complexidade de algoritmos Autômatos

06/30/06 Ricardo Silveira 26

Algoritmo para Construção das Classes de Equivalência

1.Crie, se necessário, um estado ∅ para representar as indefinições;

2.Divida K em duas CE, uma contendo F e outra contendo K-F;

3.Divida as CE existentes, formando novas CE (de acordo com a definição – lei de formação das CE), até que nenhuma nova CE seja formada.

Page 27: INE5317 Linguagens Formais e Compiladores AULA 6 ...silveira/INE5317/Laminas/INE5317Aula6.pdf · 06/30/06 Ricardo Silveira 5 Autômatos finitos X complexidade de algoritmos Autômatos

06/30/06 Ricardo Silveira 27

Algoritmo para construção do A.F. Mínimo

● Entrada: Um A.F.D. M = (K, Σ, δ, qo, F);● Saída: Um A.F.D. Mínimo M’ = (K’, Σ, δ’, qo’, F’) | M’ ≡ M;● Método:

1.Elimine os estados Inacessíveis;2.Elimine os estados Mortos;3.Construa todas as possíveis Classes de equivalência de M.4.Construa M’, como segue:

a)K’ - é o conjunto de CE obtidas;b)qo’ - é a CE que contem qo;c)F’ - é o conjunto das CE que contenham pelo menos um

elemento ∈ F; ou seja : {[q] | ∃ p ∈ F em [q], onde [q] é uma CE};d) δ’ - δ’([p], a) = [q] ⇔ δ(p1, a) = q1 é uma transição de M ∧ p1 e

q1 são elementos de [p] e [q] respectivamente.

Page 28: INE5317 Linguagens Formais e Compiladores AULA 6 ...silveira/INE5317/Laminas/INE5317Aula6.pdf · 06/30/06 Ricardo Silveira 5 Autômatos finitos X complexidade de algoritmos Autômatos

06/30/06 Ricardo Silveira 28

Exemplo

Page 29: INE5317 Linguagens Formais e Compiladores AULA 6 ...silveira/INE5317/Laminas/INE5317Aula6.pdf · 06/30/06 Ricardo Silveira 5 Autômatos finitos X complexidade de algoritmos Autômatos

06/30/06 Ricardo Silveira 29

Exemplo● Classes de equivalência

Page 30: INE5317 Linguagens Formais e Compiladores AULA 6 ...silveira/INE5317/Laminas/INE5317Aula6.pdf · 06/30/06 Ricardo Silveira 5 Autômatos finitos X complexidade de algoritmos Autômatos

06/30/06 Ricardo Silveira 30

Exemplo

Page 31: INE5317 Linguagens Formais e Compiladores AULA 6 ...silveira/INE5317/Laminas/INE5317Aula6.pdf · 06/30/06 Ricardo Silveira 5 Autômatos finitos X complexidade de algoritmos Autômatos

06/30/06 Ricardo Silveira 31

Minimização de AFD● AFD Mínimo ou Autômato Finito Mínimo

– AFD equivalente, com o menor número de estados possível

● Autômato finito mínimo é único– diferenciando-se, eventualmente, na identificação dos

estados

Page 32: INE5317 Linguagens Formais e Compiladores AULA 6 ...silveira/INE5317/Laminas/INE5317Aula6.pdf · 06/30/06 Ricardo Silveira 5 Autômatos finitos X complexidade de algoritmos Autômatos

06/30/06 Ricardo Silveira 32

Algoritmo de minimizaçãp● unifica os estados equivalentes

– Estados equivalentes● processamento de uma entrada qualquer a partir de estados

equivalentes resulta na mesma condição de aceita/● Definição formal:

● M = (Σ, Q, δ, q0, F) AFD qualquer

● q e p de Q são Estados Equivalentes sse, para qualquer w ∈Σ*

● δ(q, w) e δ(p, w)● resultam simultaneamente em estados finais, ou não-finais

Page 33: INE5317 Linguagens Formais e Compiladores AULA 6 ...silveira/INE5317/Laminas/INE5317Aula6.pdf · 06/30/06 Ricardo Silveira 5 Autômatos finitos X complexidade de algoritmos Autômatos

06/30/06 Ricardo Silveira 33

AFD mínimo● Seja L uma linguagem regular, O Autômato Finito Mínimo

é um AFD– Mm = (Σ, Qm, δm, q0m, Fm)

● tal que– ACEITA(Mm) = L– para qualquer AFD M = (Σ, Q, δ, q0, F) tal que

ACEITA(M) = L– #Q ≥ #Qm

Page 34: INE5317 Linguagens Formais e Compiladores AULA 6 ...silveira/INE5317/Laminas/INE5317Aula6.pdf · 06/30/06 Ricardo Silveira 5 Autômatos finitos X complexidade de algoritmos Autômatos

06/30/06 Ricardo Silveira 34

Pré-requisitos● Deve ser determinístico● Todos os estados devem ser alcançáveis a partir do estado

inicial● A função programa deve ser total● Caso não satisfaça algum dos pré-requisitos

– gerar um autômato determinístico equivalente– eliminar estados inacessíveis (e transições): exercício– Transformar a função programa em total

● introduzir um estado não-final d● incluir transições não-previstas, tendo d como estado

destino● incluir um ciclo em d para todos os símbolos do alfabeto

Page 35: INE5317 Linguagens Formais e Compiladores AULA 6 ...silveira/INE5317/Laminas/INE5317Aula6.pdf · 06/30/06 Ricardo Silveira 5 Autômatos finitos X complexidade de algoritmos Autômatos

06/30/06 Ricardo Silveira 35

Algoritmo de minimização● identifica os estados equivalentes por exclusão

– tabela de estados● marca estados não-equivalentes● entradas não-marcadas: estados equivalentes

Page 36: INE5317 Linguagens Formais e Compiladores AULA 6 ...silveira/INE5317/Laminas/INE5317Aula6.pdf · 06/30/06 Ricardo Silveira 5 Autômatos finitos X complexidade de algoritmos Autômatos

06/30/06 Ricardo Silveira 36

Algoritmo de minimização

Page 37: INE5317 Linguagens Formais e Compiladores AULA 6 ...silveira/INE5317/Laminas/INE5317Aula6.pdf · 06/30/06 Ricardo Silveira 5 Autômatos finitos X complexidade de algoritmos Autômatos

06/30/06 Ricardo Silveira 37

Algoritmo de minimização

Page 38: INE5317 Linguagens Formais e Compiladores AULA 6 ...silveira/INE5317/Laminas/INE5317Aula6.pdf · 06/30/06 Ricardo Silveira 5 Autômatos finitos X complexidade de algoritmos Autômatos

06/30/06 Ricardo Silveira 38

Algoritmo de minimização

Page 39: INE5317 Linguagens Formais e Compiladores AULA 6 ...silveira/INE5317/Laminas/INE5317Aula6.pdf · 06/30/06 Ricardo Silveira 5 Autômatos finitos X complexidade de algoritmos Autômatos

06/30/06 Ricardo Silveira 39

Exemplo de minimização

Page 40: INE5317 Linguagens Formais e Compiladores AULA 6 ...silveira/INE5317/Laminas/INE5317Aula6.pdf · 06/30/06 Ricardo Silveira 5 Autômatos finitos X complexidade de algoritmos Autômatos

06/30/06 Ricardo Silveira 40

Exemplo de minimização

Page 41: INE5317 Linguagens Formais e Compiladores AULA 6 ...silveira/INE5317/Laminas/INE5317Aula6.pdf · 06/30/06 Ricardo Silveira 5 Autômatos finitos X complexidade de algoritmos Autômatos

06/30/06 Ricardo Silveira 41

Exemplo de minimização

Page 42: INE5317 Linguagens Formais e Compiladores AULA 6 ...silveira/INE5317/Laminas/INE5317Aula6.pdf · 06/30/06 Ricardo Silveira 5 Autômatos finitos X complexidade de algoritmos Autômatos

06/30/06 Ricardo Silveira 42

Exemplo de minimização

Page 43: INE5317 Linguagens Formais e Compiladores AULA 6 ...silveira/INE5317/Laminas/INE5317Aula6.pdf · 06/30/06 Ricardo Silveira 5 Autômatos finitos X complexidade de algoritmos Autômatos

06/30/06 Ricardo Silveira 43

Exemplo de minimização

Page 44: INE5317 Linguagens Formais e Compiladores AULA 6 ...silveira/INE5317/Laminas/INE5317Aula6.pdf · 06/30/06 Ricardo Silveira 5 Autômatos finitos X complexidade de algoritmos Autômatos

06/30/06 Ricardo Silveira 44

Exemplo de minimização

Page 45: INE5317 Linguagens Formais e Compiladores AULA 6 ...silveira/INE5317/Laminas/INE5317Aula6.pdf · 06/30/06 Ricardo Silveira 5 Autômatos finitos X complexidade de algoritmos Autômatos

06/30/06 Ricardo Silveira 45

Exemplo de minimização

Page 46: INE5317 Linguagens Formais e Compiladores AULA 6 ...silveira/INE5317/Laminas/INE5317Aula6.pdf · 06/30/06 Ricardo Silveira 5 Autômatos finitos X complexidade de algoritmos Autômatos

06/30/06 Ricardo Silveira 46

Exemplo de minimização