03 linguagens regulares

computacaodepressao 2,328 views 140 slides Jan 10, 2013
Slide 1
Slide 1 of 140
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45
Slide 46
46
Slide 47
47
Slide 48
48
Slide 49
49
Slide 50
50
Slide 51
51
Slide 52
52
Slide 53
53
Slide 54
54
Slide 55
55
Slide 56
56
Slide 57
57
Slide 58
58
Slide 59
59
Slide 60
60
Slide 61
61
Slide 62
62
Slide 63
63
Slide 64
64
Slide 65
65
Slide 66
66
Slide 67
67
Slide 68
68
Slide 69
69
Slide 70
70
Slide 71
71
Slide 72
72
Slide 73
73
Slide 74
74
Slide 75
75
Slide 76
76
Slide 77
77
Slide 78
78
Slide 79
79
Slide 80
80
Slide 81
81
Slide 82
82
Slide 83
83
Slide 84
84
Slide 85
85
Slide 86
86
Slide 87
87
Slide 88
88
Slide 89
89
Slide 90
90
Slide 91
91
Slide 92
92
Slide 93
93
Slide 94
94
Slide 95
95
Slide 96
96
Slide 97
97
Slide 98
98
Slide 99
99
Slide 100
100
Slide 101
101
Slide 102
102
Slide 103
103
Slide 104
104
Slide 105
105
Slide 106
106
Slide 107
107
Slide 108
108
Slide 109
109
Slide 110
110
Slide 111
111
Slide 112
112
Slide 113
113
Slide 114
114
Slide 115
115
Slide 116
116
Slide 117
117
Slide 118
118
Slide 119
119
Slide 120
120
Slide 121
121
Slide 122
122
Slide 123
123
Slide 124
124
Slide 125
125
Slide 126
126
Slide 127
127
Slide 128
128
Slide 129
129
Slide 130
130
Slide 131
131
Slide 132
132
Slide 133
133
Slide 134
134
Slide 135
135
Slide 136
136
Slide 137
137
Slide 138
138
Slide 139
139
Slide 140
140

About This Presentation

No description available for this slideshow.


Slide Content

Linguagens Formais e Autômatos - P. Blauth Menezes 1
Linguagens Formais e
Autômatos
P. Blauth Menezes
[email protected]
Departamento de Informática Teórica
Instituto de Informática / UFRGS

Linguagens Formais e Autômatos - P. Blauth Menezes 2
Linguagens Formais e Autômatos
P. Blauth Menezes
1 Introdução e Conceitos Básicos
2 Linguagens e Gramáticas
3 Linguagens Regulares
4 Propriedades das Linguagens Regulares
5 Autômato Finito com Saída
6 Linguagens Livres do Contexto
7 Propriedades e Reconhecimento das Linguagens
Livres do Contexto
8 Linguagens Recursivamente Enumeráveis e
Sensíveis ao Contexto
9 Hierarquia de Classes e Linguagens e Conclusões

Linguagens Formais e Autômatos - P. Blauth Menezes 3
3 – Linguagens Regulares
3.1Sistema de Estados Finitos
3.2Composição Seqüencial, Concorrente e
Não-Determinista
3.3Autômato Finito
3.4Autômato Finito Não-Determinístico
3.5Autômato Finito com Movimentos Vazios
3.6Expressão Regular
3.7Gramática Regular

Linguagens Formais e Autômatos - P. Blauth Menezes 4
3 – Linguagens Regulares

Linguagens Formais e Autômatos - P. Blauth Menezes 5
3 Linguagens Regulares
◆ Linguagens Regulares ou Tipo 3 - formalismos
• Autômato Finito
∗ formalismo operacional ou reconhecedor
∗ basicamente, um sistema de estados finitos
• Expressão Regular
∗ formalismo denotacional ou gerador
∗ conjuntos (linguagens) básicos + concatenação e união
• Gramática Regular
∗ formalismo axiomático ou gerador
∗ gramática com restrições da forma das regras de produção

Linguagens Formais e Autômatos - P. Blauth Menezes 6
◆ Hierarquia de Chomsky
• classe de linguagens mais simples
• algoritmos de reconhecimento, geração ou conversão entre
formalismos
∗ pouca complexidade
∗ grande eficiência
∗ fácil implementação
◆ Fortes limitações de expressividade
• exemplo: duplo balanceamento não é regular.
• linguagens de programação em geral: não-regulares

Linguagens Formais e Autômatos - P. Blauth Menezes 7
◆ Complexidade de algoritmos - autômatos finitos
• classe de algoritmos mais eficientes (tempo de processamento)
∗ supondo determinada condição
• qualquer autômato finito é igualmente eficiente
• qualquer solução é ótima
∗ a menos de eventual redundância de estados
• redundância de estados
∗ (não influi no tempo)
∗ pode ser facilmente eliminada: Autômato Finito Mínimo

Linguagens Formais e Autômatos - P. Blauth Menezes 8
◆ Importantes propriedades - podem ser usadas para
• construir novas linguagens regulares
∗ a partir de linguagens regulares conhecidas
∗ (definindo uma álgebra)
• provar propriedades
• construir algoritmos
◆ Se um problema tiver uma solução regular
• considerar preferencialmente a qualquer outra não-regular
∗ propriedades da Classe
∗ eficiência e simplicidade dos algoritmos

Linguagens Formais e Autômatos - P. Blauth Menezes 9
◆ Universo de aplicações das linguagens regulares
• muito grande
• constantemente ampliado
◆ Exemplo típico e simples
• análise léxica
◆ Exemplos mais recentes
• sistemas de animação
• hipertextos
• hipermídias

Linguagens Formais e Autômatos - P. Blauth Menezes 10
◆ Capítulos subseqüentes
• minimização de autômatos finitos
• propriedades da Classe
• algumas importantes aplicações

Linguagens Formais e Autômatos - P. Blauth Menezes 11
3 – Linguagens Regulares
3.1Sistema de Estados Finitos
3.2Composição Seqüencial, Concorrente e
Não-Determinista
3.3Autômato Finito
3.4Autômato Finito Não-Determinístico
3.5Autômato Finito com Movimentos Vazios
3.6Expressão Regular
3.7Gramática Regular

Linguagens Formais e Autômatos - P. Blauth Menezes 12
3.1 Sistema de Estados Finitos
◆ Sistema de Estados Finitos
• modelo matemático de sistema com entradas e saídas discretas
• número finito e predefinido de estados
∗ podem ser definidos antes de iniciar o processamento
◆ Estado
• somente informações do passado
• necessárias para determinar as ações para a próxima entrada

Linguagens Formais e Autômatos - P. Blauth Menezes 13
◆ Motivacional
• associados a diversos tipos de sistemas naturais e construídos
Exp: Elevador
Não memoriza as requisições anteriores
• Estado: sumaria "andar corrente" e "direção de movimento"
• Entrada: requisições pendentes
Exp: Analisador Léxico, Processador de Texto
• Estado: memoriza a estrutura do prefixo da palavra em análise
• Entrada: texto

Linguagens Formais e Autômatos - P. Blauth Menezes 14
◆ Restrição
• nem todos os sistemas de estados finitos
• são adequados para serem estudados por esta abordagem
Exp: Cérebro humano
• Neurônio: número finito de bits
• Cérebro: cerca de 2
35
células
∗ abordagem pouco eficiente
∗ explosão de estados

Linguagens Formais e Autômatos - P. Blauth Menezes 15
Exp: Computador
• processadores e memórias: sistema de estados finitos
• estudo da computabilidade
∗ exige uma memória sem limite predefinido
• Máquina de Turing
∗ mais adequado ao estudo da computabilidade
• computabilidade e solucionabilidade de problemas
∗ apenas introduzido
∗ questões tratadas na Teoria da Computação

Linguagens Formais e Autômatos - P. Blauth Menezes 16
3 – Linguagens Regulares
3.1Sistema de Estados Finitos
3.2Composição Seqüencial, Concorrente e
Não-Determinista
3.3Autômato Finito
3.4Autômato Finito Não-Determinístico
3.5Autômato Finito com Movimentos Vazios
3.6Expressão Regular
3.7Gramática Regular

Linguagens Formais e Autômatos - P. Blauth Menezes 17
3.2 Composição Seqüencial,
Concorrente e Não-Determinista
◆ Construção composicional de sistema
• construído a partir de sistemas conhecidos
∗ e assim sucessivamente
∗ até chegar ao nível mais elementar (como uma ação atômica)
◆ Composição
• Seqüencial
• Concorrente
• Não-Determinista

Linguagens Formais e Autômatos - P. Blauth Menezes 18
◆ Seqüencial
• execução da próxima componente
• depende da terminação da componente anterior
◆ Concorrente
• componentes independentes
∗ ordem em que são executadas não é importante
• portanto, podem ser processadas ao mesmo tempo

Linguagens Formais e Autômatos - P. Blauth Menezes 19
◆ Não-Determinista
• próxima componente: escolha entre diversas alternativas
• em oposição à determinista
∗ para as mesmas condições
∗ próxima componente é sempre a mesma
• não-determinismo pode ser
∗ interno: sistema escolhe aleatoriamente
∗ externo: escolha externa ao sistema
◆ Sistemas reais
• as três formas de composição são comuns

Linguagens Formais e Autômatos - P. Blauth Menezes 20
Exp: Banco
Seqüencial
• fila: próximo cliente depende do atendimento do anterior
• pagamento de uma conta depende do fornecimento de um valor
Concorrente
• diversos caixas atendem independentemente diversos clientes
• clientes nos caixas: ações independentemente dos clientes na fila
Não-determinista
• dois ou mais caixas disponíveis ao mesmo tempo
∗ próximo cliente pode escolher o caixa
• caminhar de um indivíduo: perna esquerda ou direita

Linguagens Formais e Autômatos - P. Blauth Menezes 21
◆ Linguagens Formais
• seqüencial e não-determinimo: especialmente importantes
◆ Semântica do não-determinismo adotada
• a usual para Linguagens Formais, Teoria da Computação...
∗ não-determinismo interno
∗ objetivo: determinar a capacidade de reconhecer linguagens e
de solucionar problemas
• difere da adotada no estudo dos Modelos para Concorrência
∗ exemplo: Sistemas Operacionais
∗ pode causar confusão com a semântica da concorrência

Linguagens Formais e Autômatos - P. Blauth Menezes 22
3 – Linguagens Regulares
3.1Sistema de Estados Finitos
3.2Composição Seqüencial, Concorrente e
Não-Determinista
3.3Autômato Finito
3.4Autômato Finito Não-Determinístico
3.5Autômato Finito com Movimentos Vazios
3.6Expressão Regular
3.7Gramática Regular

Linguagens Formais e Autômatos - P. Blauth Menezes 23
3.3 Autômato Finito
◆ Autômato Finito: sistema de estados finitos
• número finito e predefinido de estados
• modelo computacional comum em diversos estudos teórico-formais
∗ Linguagens Formais
∗ Compiladores
∗ Semântica Formal
∗ Modelos para Concorrência

Linguagens Formais e Autômatos - P. Blauth Menezes 24
◆ Formalismo operacional/reconhecedor - pode ser
• determinístico
∗ dependendo do estado corrente e do símbolo lido
∗ pode assumir um único estado
• não-determinístico
∗ dependendo do estado corrente e do símbolo lido
∗ pode assumir um conjunto de estados alternativos
• com movimentos vazios
∗ dependendo do estado corrente e sem ler qualquer símbolo
∗ pode assumir um conjunto de estados (portanto é não-
determinístico)

Linguagens Formais e Autômatos - P. Blauth Menezes 25
◆ Movimento vazio
• pode ser visto como transições encapsuladas
∗ excetuando-se por uma eventual mudança de estado
∗ nada mais pode ser observado
• análogo à encapsulação das linguagens orientadas a objetos
◆ Três tipos de autômatos: equivalentes
• em termos de poder computacional

Linguagens Formais e Autômatos - P. Blauth Menezes 26
◆ Autômato finito (determinístico): máquina constituída
por
• Fita: dispositivo de entrada
∗ contém informação a ser processada
• Unidade de Controle: reflete o estado corrente da máquina
∗ possui unidade de leitura (cabeça da fita)
∗ acessa uma célula da fita de cada vez
∗ movimenta-se exclusivamente para a direita
• Programa, Função Programa ou Função de Transição
∗ comanda as leituras
∗ define o estado da máquina

Linguagens Formais e Autômatos - P. Blauth Menezes 27
◆ Fita é finita
• dividida em células
• cada célula armazena um símbolo
• símbolos pertencem a um alfabeto de entrada
• não é possível gravar sobre a fita (não existe memória auxiliar)
• palavra a ser processada ocupa toda a fita

Linguagens Formais e Autômatos - P. Blauth Menezes 28
◆ Unidade de controle
• número finito e predefinido de estados
∗ origem do termo controle finito
• leitura
∗ lê o símbolo de uma célula de cada vez
∗ move a cabeça da fita uma célula para a direita
∗ posição inicial da cabeça célula mais à esquerda da fita
a a b c c b a a
controle

Linguagens Formais e Autômatos - P. Blauth Menezes 29
◆ Programa: função parcial
• dependendo do estado corrente e do símbolo lido
• determina o novo estado do autômato

Linguagens Formais e Autômatos - P. Blauth Menezes 30
Def: Autômato Finito (Determinístico) ou AFD
M = (Σ, Q, δ, q0, F)
• Σ é um alfabeto (de símbolos) de entrada
• Q é um conjunto de estados possíveis do autômato (finito)
• δ é uma (função) programa ou função de transição (função parcial)
δ: Q × Σ → Q
∗ transição do autômato: δ(p, a) = q
• q0 é um elemento distinguido de Q: estado inicial
• F é um subconjunto de Q: conjunto de estados finais

Linguagens Formais e Autômatos - P. Blauth Menezes 31
◆ Autômato finito como um diagrama: δ(p, a) = q
a
p q
estado anterior
símbolo lido
novo estado

Linguagens Formais e Autômatos - P. Blauth Menezes 32
◆ Estados iniciais e finais
q0 qf
◆ Transições paralelas: δ(q, a) = p e δ(q, b) = p
a
p q
b
a,b
p q

Linguagens Formais e Autômatos - P. Blauth Menezes 33
◆ Função programa como uma tabela de dupla entrada
δ(p, a) = q
δa…
pq…
q……

Linguagens Formais e Autômatos - P. Blauth Menezes 34
◆ Computação de um autômato finito
• sucessiva aplicação da função programa
• para cada símbolo da entrada (da esquerda para a direita)
• até ocorrer uma condição de parada
◆ Lembre-se que um autômato finito
• não possui memória de trabalho
• para armazenar as informações passadas
• deve-se usar o conceito de estado

Linguagens Formais e Autômatos - P. Blauth Menezes 35
Exp: Autômato Finito: aa ou bb como subpalavra
L1
= { w  w possui aa ou bb como subpalavra }
Autômato finito
M1
= ({ a, b }, { q0, q1, q2, qf
}, δ1, q0, { qf
})
δ1ab
q0q1q2
q1qfq2
q2q1qf
qfqfqf

Linguagens Formais e Autômatos - P. Blauth Menezes 36
q0
q1 q2
a b
b
a
a,b
a b
qf
• q1: "símbolo anterior é a"
• q2: "símbolo anterior é b"
• qual a informação memorizada por q0 e qf
• após identificar aa ou bb
∗ qf (final): varre o sufixo da entrada - terminar o processamento

Linguagens Formais e Autômatos - P. Blauth Menezes 37
q0
q1 q2
a b
b
a
a,b
a b
qf
qf
q1
q0
a b b a
q2
qf

Linguagens Formais e Autômatos - P. Blauth Menezes 38
Obs: Autômato Finito Sempre Pára
Como
• qualquer palavra é finita
• novo símbolo é lido a cada aplicação da função programa
não existe a possibilidade de ciclo (loop) infinito
◆ Parada do processamento
• Aceita a entrada
∗ após processar o último símbolo, assume um estado final
• Rejeita a entrada. Duas possibilidades
∗ após processar o último símbolo, assume um estado não-final
∗ programa indefinido para argumento (estado e símbolo)

Linguagens Formais e Autômatos - P. Blauth Menezes 39
Obs: Autômato Finito × Grafo Finito Direto
Qual a diferença entre um autômato finito e um grafo finito direto?
Qualquer autômato finito pode ser visto como um grafo finito direto
• podem existir arcos paralelos (mesmos nodos origem e destino)
• dois ou mais arcos podem ser identificados com a mesma etiqueta
(símbolo do alfabeto)
• existe um nodo distinguido: estado inicial
• existe um conjunto de nodos distinguidos: estados finais
Usual considerar um autômato finito como grafo finito direto especial
• herda resultados da Teoria dos Grafos

Linguagens Formais e Autômatos - P. Blauth Menezes 40
◆ Definição formal do comportamento de um autômato
finito
• dar semântica à sintaxe
• necessário estender a função programa
• argumento: estado e palavra

Linguagens Formais e Autômatos - P. Blauth Menezes 41
Def: Função Programa Estendida, Computação
M = (Σ, Q, δ, q0, F) autômato finito determinístico
δ*: Q × Σ* → Q
é δ: Q × Σ → Q estendida para palavras - indutivamente definida
• δ*(q, ε) = q
• δ*(q, aw) = δ*(δ(q, a), w)
◆ Observe
• sucessiva aplicação da função programa
∗ para cada símbolo da palavra
∗ a partir de um dado estado
• se a entrada for vazia, fica parado
• aceita/rejeita: função programa estendida a partir do estado inicial

Linguagens Formais e Autômatos - P. Blauth Menezes 42
Exp: Função Programa Estendida
q0
q1 q2
a b
b
a
a,b
a b
qf
• δ*(q0, abaa) = função estendida sobre abaa
• δ*(δ(q0, a), baa) = processa abaa
• δ*(q1, baa) = função estendida sobre baa
• δ*(δ(q1, b), aa) = processa baa
• δ*(q2, aa) = função estendida sobre aa
• δ*(δ(q2, a), a) = processa aa
• δ*(q1, a) = função estendida sobre a
• δ*(δ(q1, a), ε) = processa a
• δ*(qf, ε) = qffunção estendida sobre ε: fim da indução; ACEITA

Linguagens Formais e Autômatos - P. Blauth Menezes 43
Def: Linguagem Aceita, Linguagem Rejeitada
M = (Σ, Q, δ, q0, F) autômato finito determinístico.
Linguagem Aceita ou Linguagem Reconhecida por M
L(M) = ACEITA(M) = { w  δ*(q0, w) ∈ F }
Linguagem Rejeitada por M:
REJEITA(M) = { w  δ*(q0, w) ∉ F ou δ*(q0, w) é indefinida }
◆ Supondo que Σ* é o conjunto universo
• ACEITA(M) ∩ REJEITA(M) = ∅
• ACEITA(M) ∪ REJEITA(M) = Σ*
• ~ACEITA(M) = REJEITA(M)
• ~REJEITA(M) = ACEITA(M)

Linguagens Formais e Autômatos - P. Blauth Menezes 44
◆ Cada autômato finito M sobre Σ
• induz uma partição de Σ* em duas classes de equivalência
• e se um dos dois conjuntos for vazio?
Σ*
ACEITA(M) REJEITA(M)

Linguagens Formais e Autômatos - P. Blauth Menezes 45
◆ Diferentes autômatos finitos podem aceitar uma
mesma linguagem
Def: Autômatos Finitos Equivalentes
M1 e M2 são Autômatos Finitos Equivalentes se e somente se
ACEITA(M1) = ACEITA(M2)
Def: Linguagem Regular, Linguagem Tipo 3
L é uma Linguagem Regular ou Linguagem Tipo 3
• existe pelo menos um autômato finito determinístico que aceita L

Linguagens Formais e Autômatos - P. Blauth Menezes 46
Exp: …Autômato Finito: Vazia, Todas as Palavras
Linguagens sobre o alfabeto { a, b }
L2
= ∅     e     L 3
= Σ*
a,b
q0
a,b
q0
M2 M3

Linguagens Formais e Autômatos - P. Blauth Menezes 47
Exp: Autômato Finito: Vazia, Todas as Palavras
L2
= ∅     e     L 3
= Σ*
δ2ab               δ3ab
q0q0q0 q0q0q0
• diferença entre δ2 e δ3?
• o que, exatamente, diferencia M2 de M3?

Linguagens Formais e Autômatos - P. Blauth Menezes 48
Exp: Autômato Finito: número par de cada símbolo
L4
= { w  w possui um número par de a e um número par de b }
q0 q1
q3q2
b
b
b
b
a
a a
a
Como seria para aceitar um número ímpar de cada símbolo?

Linguagens Formais e Autômatos - P. Blauth Menezes 49
Obs: Função Programa × Função Programa Estendida
Objetivando simplificar a notação
• δ e a sua correspondente extensão δ*
• podem ser ambas denotadas por δ
Obs: Computações × Caminhos de um Grafo
• conjunto de arcos: computações possíveis
• subconjunto de arcos
∗ com origem no estado inicial
∗ destino em algum estado final
∗ linguagem aceita

Linguagens Formais e Autômatos - P. Blauth Menezes 50
Obs: …Computações × Caminhos de um Grafo
1
2
3
4
5
a
b
c
d
abc
ab
bc
Computações(M)
=
{ ε, a, b, c, d,
ab, bc, abc}
caminhos MM
1
2
3
4
5
a
b
c
d
ACEITA (M)
=
{ε , d, abc}
ε
ε
ε
ε
ε

Linguagens Formais e Autômatos - P. Blauth Menezes 51
3 – Linguagens Regulares
3.1Sistema de Estados Finitos
3.2Composição Seqüencial, Concorrente e
Não-Determinista
3.3Autômato Finito
3.4Autômato Finito Não-Determinístico
3.5Autômato Finito com Movimentos Vazios
3.6Expressão Regular
3.7Gramática Regular

Linguagens Formais e Autômatos - P. Blauth Menezes 52
3.4 Autômato Finito Não-Determinístico

Linguagens Formais e Autômatos - P. Blauth Menezes 53
◆ Não-determinismo
• importante generalização dos modelos de máquinas
• fundamental no estudo
∗ Modelos para Concorrência
∗ Teoria da Computação
∗ Linguagens Formais, …
◆ Semântica de não-determinismo adotada
• usual no estudo das Linguagens Formais
• objetiva determinar a capacidade de
∗ reconhecer linguagens
∗ solucionar problemas
• pode causar alguma confusão com semântica da concorrência

Linguagens Formais e Autômatos - P. Blauth Menezes 54
◆ Nem sempre não-determinismo aumenta o poder
• reconhecimento de linguagens de uma classe de autômatos
∗ qualquer autômato finito não-determinístico pode ser simulado
por um autômato finito determinístico
◆ Não-determinismo no programa, é uma função parcial
dependendo do estado corrente e do símbolo lido,
determina um conjunto de estados do autômato.
◆ Assume um conjunto de estados alternativos
• como uma multiplicação da unidade de controle
• uma para cada alternativa
• processando independentemente
• sem compartilhar recursos

Linguagens Formais e Autômatos - P. Blauth Menezes 55
Def: Autômato Finito Não-Determinístico (AFN)
M = (Σ, Q, δ, q0, F)
• Σ - alfabeto (de símbolos) de entrada
• Q - conjunto de estados possíveis (finito)
• δ - (função) programa ou função de transição (função parcial)
δ: Q × Σ → 2
Q
∗ transição: δ(p, a) = { q1, q2, …, qn
}
• q0 é um elemento distinguido de Q: estado inicial
• F é um subconjunto de Q: conjunto de estados finais

Linguagens Formais e Autômatos - P. Blauth Menezes 56
◆ Autômato como diagrama
δ(p, a) = { q1, q2, …, qn
}
conjunto de
novos estados
a
estado anterior
símbolo lidoaa
q1 q2 qn
p

Linguagens Formais e Autômatos - P. Blauth Menezes 57
◆ Computação de um autômato finito não-
determinístico
• sucessiva aplicação da função programa
• para cada símbolo da entrada (da esquerda para a direita)
• até ocorrer uma condição de parada
◆ Argumentos: computação/função programa estendida
• conjunto finito de estados e uma palavra

Linguagens Formais e Autômatos - P. Blauth Menezes 58
Def: Função Programa Estendida, Computação
M = (Σ, Q, δ, q0, F) autômato finito não-determinístico
δ*: 2
Q
× Σ* → 2
Q
indutivamente definida
• δ*(P, ε) = P
• δ*(P, aw) = δ*(∪q∈P
δ(q, a), w)
◆ Transição estendida (a um conjunto de estados)
δ*({ q1, q2,…, qn
}, a) = δ(q1, a) ∪ δ(q2, a) ∪…∪ δ(qn, a)

Linguagens Formais e Autômatos - P. Blauth Menezes 59
◆ Parada do processamento
• Aceita a entrada
∗ após processar o último símbolo da fita, existe pelo menos um
estado final pertencente ao conjunto de estados alternativos
atingidos
• Rejeita a entrada. Duas possibilidades
∗ após processar o último símbolo da fita, todos os estados
alternativos atingidos são não-finais
∗ programa indefinido para o argumento (conjunto de estados e
símbolo)

Linguagens Formais e Autômatos - P. Blauth Menezes 60
Def: Linguagem Aceita, Linguagem Rejeitada
Seja M = (Σ, Q, δ, q0, F) um autômato finito não-determinístico
Linguagem Aceita ou Linguagem Reconhecida por M
L(M) = ACEITA(M) = { w  δ*({ q0
}, w) ∩ F ≠ ∅ }
Linguagem Rejeitada por M
REJEITA(M) = { w  δ*({ q0
}, w) ∩ F = ∅ ou δ*({ q0
}, w) é indefinida }

Linguagens Formais e Autômatos - P. Blauth Menezes 61
Exp: Autômato Finito Não-Determinístico: aa ou bb
como subpalavra
L5
= { w  w possui aa ou bb como subpalavra }
Autômato finito não-determinístico:
M5
= ({ a, b }, { q0, q1, q2, qf
}, δ5, q0, { qf
})
q0
q1
qf
q2
a
a
b
b
a,b
a,b

Linguagens Formais e Autômatos - P. Blauth Menezes 62
q0
q1
qf
q2
a
a
b
b
a,b
a,b

Linguagens Formais e Autômatos - P. Blauth Menezes 63
q0
q1
qf
q2
a
a
b
b
a,b
a,b
• o ciclo em q0 realiza uma varredura em toda a entrada
• o caminho q0/q1/qf garante a ocorrência de aa
• o caminho q0/q2/qf garante a ocorrência de bb

Linguagens Formais e Autômatos - P. Blauth Menezes 64
q0
q1
qf
q2
a
a
b
b
a,b
a,b
δ5 a b
q0{ q0,q1
}{ q0,q2
}
q1{ qf
} -
q2 - { qf
}
qf{ qf
} { qf
}

Linguagens Formais e Autômatos - P. Blauth Menezes 65
Exp: AFN: aaa como sufixo
L6
= { w  w possui aaa como sufixo }
Autômato finito não-determinístico:
M6
= ({ a, b }, { q0, q1, q2, qf
}, δ6, q0, { qf
})
q0 q1 qfq2
a a
a,b
a

Linguagens Formais e Autômatos - P. Blauth Menezes 66
◆ Não-determinismo
• aparentemente, um significativo acréscimo ao poder computacional
autômato finito
• na realidade não aumenta seu poder computacional
Teorema: Equivalência entre AFD e AFN
Classe dos Autômatos Finitos Determinísticos é equivalente à
Classe dos Autômatos Finitos Não-Determinísticos

Linguagens Formais e Autômatos - P. Blauth Menezes 67
Prova: (por indução)
Mostrar que
• a partir de um AFN M qualquer
• construir um AFD MD que realiza as mesmas computações
• MD simula M
AFN → AFD
• estados de MD simulam combinações de estados alternativos de M
• prova da simulação: por indução
AFD → AFN
• não necessita ser mostrado: decorre trivialmente das definições

Linguagens Formais e Autômatos - P. Blauth Menezes 68
M = (Σ, Q, δ, q0, F) um AFN qualquer. AFD construído
MD
= (Σ, QD, δD, 〈q0〉, FD)
• QD - todas as combinações, sem repetições, de estados de Q
∗ notação 〈q1q2…qn〉
∗ ordem não distingue combinações: 〈quqv〉 = 〈qvqu〉
∗ imagem de todos os estados alternativos de M
• δD: QD
× Σ → QD
δD(〈q1…qn〉, a) = 〈p1…pm〉 sse δ*({ q1, …, qn
}, a) = { p1, …, pm
}
• 〈q0〉 - estado inicial
• FD - conjunto de estados 〈q1q2…qn〉 pertencentes a QD
∗ alguma componente qi pertence a F, para i em { 1, 2, …, n }

Linguagens Formais e Autômatos - P. Blauth Menezes 69
AFD MD simula as computações do AFN M ???
• indução no tamanho da palavra
• mostrar que
δD*(〈q0〉, w) = 〈q1…qu〉 sse δ*({ q0
}, w) = { q1, …, qu
}
Base de indução.  w  = 0. Portanto w = ε:
δD*(〈q0〉, ε) = 〈q0〉 se e somente se δ*({ q0
}, ε) = { q0
}
• verdadeiro, por definição de computação

Linguagens Formais e Autômatos - P. Blauth Menezes 70
Hipótese de indução.  w  = n e n ≥ 1. Suponha que:
δD*(〈q0〉, w) = 〈q1…qu〉 sse δ*({ q0
}, w) = { q1, …, qu
}
Passo de Indução.  wa  = n + 1 e n ≥ 1
δD*(〈q0〉, wa) = 〈p1…pv〉 sse δ*({ q0
}, wa) = { p1, …, pv
}
• equivale (hipótese de indução)
δD(〈q1…qu〉, a) = 〈p1…pv〉 sse δ*({ q1, …, qu
}, a) = { p1, …, pv
}
• verdadeiro, por definição de δD
Logo, MD simula M para qualquer entrada w pertencente a Σ*

Linguagens Formais e Autômatos - P. Blauth Menezes 71
◆ Portanto, linguagem aceita por AFN
• é Linguagem Regular ou Tipo 3
Obs: Determinismo × Não-Determinismo
Muitas vezes é mais fácil desenvolver um AFN do que um AFD
• exemplo
{ w  o quinto símbolo da direita para a esquerda de w é a }
• solução determinista: não é trivial; número grande de estados
• solução não-determinista: bem simples; poucos estados
Alternativa para construir um AFD
• desenvolver inicialmente AFN
• aplicar o algoritmo apresentado na prova do teorema

Linguagens Formais e Autômatos - P. Blauth Menezes 72
Exp: AFN → AFD
M6
= ({ a, b }, { q0, q1, q2, qf
}, δ6, q0, { qf
})
q0 q1 qfq2
a a
a,b
a
M6D
= ({ a, b }, QD, δ6D, 〈q0〉, FD)
• QD = { 〈q0〉, 〈q1〉, 〈q2〉, 〈qf〉, 〈q0q1〉, 〈q0q2〉, …, 〈q0q1q2qf〉 }
• FD = { 〈qf〉, 〈q0qf〉, 〈q1qf〉, …, 〈q0q1q2qf〉 }

Linguagens Formais e Autômatos - P. Blauth Menezes 73
AFN
q0 q1 qfq2
a a
a,b
a
AFD
δ6D a b
〈q0〉 〈q0q1〉 〈q0〉
〈q0q1〉 〈q0q1q2〉 〈q0〉
〈q0q1q2〉 〈q0q1q2qf〉 〈q0〉
〈q0q1q2qf〉 〈q0q1q2qf〉 〈q0〉

Linguagens Formais e Autômatos - P. Blauth Menezes 74
δ6D a b
p0
= 〈q0〉 〈q0q1〉 〈q0〉
p1
= 〈q0q1〉 〈q0q1q2〉〈q0〉
p2
= 〈q0q1q2〉〈q0q1q2qf〉〈q0〉
pf
= 〈q0q1q2qf〉〈q0q1q2qf〉〈q0〉
b
a a a
bbb
a
p0 p1 pfp2

Linguagens Formais e Autômatos - P. Blauth Menezes 75
3 – Linguagens Regulares
3.1Sistema de Estados Finitos
3.2Composição Seqüencial, Concorrente e
Não-Determinista
3.3Autômato Finito
3.4Autômato Finito Não-Determinístico
3.5Autômato Finito com Movimentos Vazios
3.6Expressão Regular
3.7Gramática Regular

Linguagens Formais e Autômatos - P. Blauth Menezes 76
3.5 Autômato Finito com Movimentos
Vazios
◆ Movimentos vazios
• generalizam os movimentos não-determinísticos
◆ Movimento vazio
• transição sem leitura de símbolo algum da fita
• interpretado como um não-determinismo interno ao autômato
∗ transição encapsulada
∗ excetuando-se por uma eventual mudança de estados
∗ nada mais pode ser observado

Linguagens Formais e Autômatos - P. Blauth Menezes 77
◆ Algumas vantagens
• facilita algumas construções e demonstrações
◆ Poder computacional p/ autômatos finitos
• não aumenta o poder de reconhecimento de linguagens
• qualquer aAFNε pode ser simulado por um AFD

Linguagens Formais e Autômatos - P. Blauth Menezes 78
Def: Autômato Finito com Movimentos Vazios - AFNε
M = (Σ, Q, δ, q0, F)
• Σ - alfabeto (de símbolos) de entrada
• Q - conjunto de estados possíveis
• δ - (função) programa ou função de transição (função parcial)
δ: Q × (Σ ∪ { ε }) → 2
Q
∗ movimento vazio ou transição vazia
δ(p, ε) = { q1, q2, …, qn
}
• q0 - elemento distinguido de Q: estado inicial
• F - subconjunto de Q: conjunto de estados finais

Linguagens Formais e Autômatos - P. Blauth Menezes 79
◆ Autômato como diagrama
δ(q, ε) = { p0
} δ(q, a1) = { p1
} … δ(q, an) = { pn
}
p0 p1 pn
q
a1
an
ε

Linguagens Formais e Autômatos - P. Blauth Menezes 80
◆ Computação de um AFNε
• análoga à de um AFN
◆ Processamento de uma transição vazia
• não-determinístico
• assume simultaneamente os estados destino e origem
• origem de um movimento vazio: caminho alternativo

Linguagens Formais e Autômatos - P. Blauth Menezes 81
Exp: AFNε: a’s antecedem b’s
M7
= ({ a, b }, { q0, qf
}, δ7, q0, { qf
})
δ7 a b ε
q0{ q0
} - { qf
}
qf - { qf
}
q0 qf
ε
a b

Linguagens Formais e Autômatos - P. Blauth Menezes 82
◆ Antes de definir computação
• computação de transições vazias a partir de
∗ um estado
∗ um conjunto finito de estados

Linguagens Formais e Autômatos - P. Blauth Menezes 83
Def: Computação Vazia
M = (Σ, Q, δ, q0, F)
Computação Vazia ou Função Fecho Vazio (um estado)
δε: Q → 2
Q
• indutivamente definida
∗ δε(q) = { q }, se δ(q, ε) é indefinida
∗ δε(q) = { q } ∪ δ(q, ε) ∪ (∪p∈δ(q,ε) δε(p)), caso contrário
Computação Vazia ou Função Fecho Vazio (conjunto de estados)
δε*: 2
Q
→ 2
Q
• tal que
δε*(P) = ∪q∈P δε(q)

Linguagens Formais e Autômatos - P. Blauth Menezes 84
◆ Por simplicidade, δε e δε*
• ambas denotadas por δε
Exp: Computação Vazia
q0 qf
ε
a b
• δε(q0) = { q0, qf
}
• δε(qf) = { qf
}
• δε({ q0, qf
}) = { q0, qf
}

Linguagens Formais e Autômatos - P. Blauth Menezes 85
◆ Computação de um AFNε para uma entrada w
• sucessiva aplicação da função programa
• para cada símbolo de w (da esquerda para a direita)
• cada passo de aplicação intercalado com computações vazias
• até ocorrer uma condição de parada
◆ Assim, antes de processar a próxima transição
• determinar
∗ todos os demais estados atingíveis
∗ exclusivamente por movimentos vazios

Linguagens Formais e Autômatos - P. Blauth Menezes 86
Def: Função Programa Estendida, Computação
M = (Σ, Q, δ, q0, F) AFNε
δ*: 2
Q
× Σ* → 2
Q
indutivamente definida
• δ*(P, ε) = δε(P)
• δ*(P, wa) = δε(R) onde R = { r  r ∈ δ(s, a) e s ∈ δ*(P, w) }
◆ Parada do processamento, Ling. Aceita/Rejeitada
• análoga à do autômato finito não-determinístico

Linguagens Formais e Autômatos - P. Blauth Menezes 87
Exp: Computação Vazia, Computação
L8
= { w  w possui como sufixo a ou bb ou ccc }
M8
= ({ a, b, c }, { q0, q1, q2, q3, q4, q5, q6, qf
}, δ8, q0, { qf
})
q2 q3
a
a,b,c
q1
q4 q5
qf
b b
c c
ε
ε
ε
c
q0
q6

Linguagens Formais e Autômatos - P. Blauth Menezes 88
q2 q3
a
a,b,c
q1
q4 q5
qf
b b
c c
ε
ε
ε
c
q0
q6
δ*({ q0
}, abb) = δε({ r  r ∈ δ(s, b) e s ∈ δ*({ q0
}, ab) }) (1)
δ*({ q0
}, ab) = δε({ r  r ∈ δ(s, b) e s ∈ δ*({ q0
}, a) }) (2)
δ*({ q0
}, a) = δε({ r  r ∈ δ(s, a) e s ∈ δ*({ q0
}, ε) }) (3)
Como:
δ*({ q0
}, ε) } = δε({ q0
}) = { q0, q1, q2, q4
} considerado em (3)
δ*({ q0
}, a) = { q0, q1, q2, q4, qf
} considerado em (2)
δ*({ q0
}, ab) = { q0, q1, q2, q3, q4
} considerado em (1)
Resulta na computação: δ*({ q0
}, abb) = { q0, q1, q2, q3, q4, qf
}

Linguagens Formais e Autômatos - P. Blauth Menezes 89
Teorema: Equivalência entre AFN e AFNε
Classe dos Autômatos Finitos com Movimentos Vazios é equivalente à
Classe dos Autômatos Finitos Não-Determinísticos
Prova: (por indução)
Mostrar que
• a partir de um AFNε M qualquer
• construir um AFN MN que realiza as mesmas computações
• MN simula M
AFNε → AFN
• construção de uma função programa sem movimentos vazios
• conjunto de estados destino de cada transição não-vazia
∗ ampliado com os demais estados possíveis de serem atingidos
exclusivamente por transições vazias

Linguagens Formais e Autômatos - P. Blauth Menezes 90
M = (Σ, Q, δ, q0, F) um AFNε qualquer. AFN construído
MN
= (Σ, Q, δN, q0, FN)
• δN: Q × Σ → 2
Q
é tal que
δN(q, a) = δ*({ q }, a)
• FN é o conjunto de todos os estados q pertencentes a Q
δε(q) ∩ F ≠ ∅
∗ estados que atingem estados finais via computações vazias
Demonstração que, de fato, o AFN MN simula o AFNε M
• indução no tamanho da palavra
• exercício

Linguagens Formais e Autômatos - P. Blauth Menezes 91
◆ Portanto, linguagem aceita por AFNε
• é Linguagem Regular ou Tipo 3

Linguagens Formais e Autômatos - P. Blauth Menezes 92
Exp: Construção de um AFN a partir de um AFNε
AFNε - M9
= ({ a, b }, { q0, q1, q2
}, δ9, q0, { q2
})
δ9a b ε
q0{ q0
}-{ q1
}
q1-{ q1
}{ q2
}
q2{ q2
}- -
q0 q1
ε
a b
q2
ε
a

Linguagens Formais e Autômatos - P. Blauth Menezes 93
q0 q1
ε
a b
q2
ε
a
M9N
= ({ a, b }, { q0, q1, q2
}, δ9N
q0, FN)
q0 q1
a b
q2
a
a,b a,b
a,b

Linguagens Formais e Autômatos - P. Blauth Menezes 94
q0 q1
ε
a b
q2
ε
a
FN
= { q0, q1, q2
}
• δε(q0) = { q0, q1, q2
}
• δε(q1) = { q1, q2
}
• δε(q2) = { q2
}

Linguagens Formais e Autômatos - P. Blauth Menezes 95
q0 q1
ε
a b
q2
ε
a
Na construção de δ9N
• δ9*({ q0
}, ε) = { q0, q1, q2
}
• δ9*({ q1
}, ε) = { q1, q2
}
• δ9*({ q2
}, ε) = { q2
}

Linguagens Formais e Autômatos - P. Blauth Menezes 96
q0 q1
ε
a b
q2
ε
a
Assim, δ9N é tal que
δ9N(q0, a) = δ9*({ q0
}, a) =
δε({ r  r ∈ δ(s, a) e s ∈ δ*({ q0
}, ε) }) = { q0, q1, q2
}
δ9N(q0, b) = δ9*({ q0
}, b) =
δε({ r  r ∈ δ(s, b) e s ∈ δ*({ q0
}, ε) }) = { q1, q2
}
δ9N(q1, a) = δ9*({ q1
}, a) =
δε({ r  r ∈ δ(s, a) e s ∈ δ*({ q1
}, ε) }) = { q2
}

Linguagens Formais e Autômatos - P. Blauth Menezes 97
q0 q1
ε
a b
q2
ε
a
• δ9N(q1, b) = δ9*({ q1
}, b) = δε({ r  r ∈ δ(s, b) e
s ∈ δ*({ q1
}, ε) }) = { q1, q2
}
• δ9N(q2, a) = δ9*({ q2
}, a) = δε({ r  r ∈ δ(s, a) e
s ∈ δ*({ q2
}, ε) }) = { q2
}
• δ9N(q2, b) = δ9*({ q2
}, b) = δε({ r  r ∈ δ(s, b) e
s ∈ δ*({ q2
}, ε) }) é indefinida

Linguagens Formais e Autômatos - P. Blauth Menezes 98
3 – Linguagens Regulares
3.1Sistema de Estados Finitos
3.2Composição Seqüencial, Concorrente e
Não-Determinista
3.3Autômato Finito
3.4Autômato Finito Não-Determinístico
3.5Autômato Finito com Movimentos Vazios
3.6Expressão Regular
3.7Gramática Regular

Linguagens Formais e Autômatos - P. Blauth Menezes 99
3.6 Expressão Regular
◆ Toda linguagem regular pode ser descrita por uma
• Expressão Regular
◆ Formalismo denotacional (gerador)
◆ Definida a partir de
• conjuntos (linguagens) básicos
• concatenação e união
◆ Adequadas para a comunicação
• humano × humano
• humano × máquina

Linguagens Formais e Autômatos - P. Blauth Menezes 100
Def: Expressão Regular (ER)
Base de Indução
• ∅ é ER
∗ denota a linguagem vazia: ∅
• ε é ER
∗ denota a linguagem { ε }
• x é ER (para qualquer x ∈ Σ)
∗ denota a linguagem { x }

Linguagens Formais e Autômatos - P. Blauth Menezes 101
Def: …Expressão Regular (ER)
Passo de Indução: se r e s são ER e denotam as ling. R e S, então
• União. (r + s) é ER
∗ denota a linguagem R ∪ S
• Concatenação. (rs) é ER
∗ denota a linguagem R S = { uv  u ∈ R e v ∈ S }
• Concatenação Sucessiva. (r*) é ER
∗ denota a linguagem R*

Linguagens Formais e Autômatos - P. Blauth Menezes 102
Def: Linguagem Gerada por uma ER
Se r é ER, a correspondente linguagem denotada é dita
• Linguagem Gerada por r
L(r) ou GERA(r)
◆ Omissão de parênteses em uma ER é usual
• concatenação sucessiva: precedência sobre concatenação e união
• concatenação: precedência sobre união

Linguagens Formais e Autômatos - P. Blauth Menezes 103
Exp: Expressão Regular
ER Linguagem Gerada ???
aa
ba*
(a + b)*
(a + b)*aa(a + b)*
a*ba*ba*
(a + b)*(aa + bb)
(a + ε)(b + ba)*

Linguagens Formais e Autômatos - P. Blauth Menezes 104
Exp: …Expressão Regular
ER Linguagem Gerada
aa somente a palavra aa
ba* todas as palavras que iniciam por b, seguido por
zero ou mais a
(a + b)* todas as palavras sobre { a, b }
(a + b)*aa(a + b)*todas as palavras contendo aa como subpalavra
a*ba*ba* todas as palavras contendo exatamente dois b
(a + b)*(aa + bb)todas as palavras que terminam com aa ou bb
(a + ε)(b + ba)*todas as palavras que não possuem dois a
consecutivos

Linguagens Formais e Autômatos - P. Blauth Menezes 105
Exp: …Expressão Regular
Linguagem gerada pela ER (a + b)*(aa + bb)
• a e b denotam { a } e { b }, respectivamente
• a + b denota { a } ∪ { b } = { a, b }
• (a + b)* denota { a, b }*
• aa e bb denotam { a } { a } = { aa } e { b } { b } = { bb },
respectivamente
• (aa + bb) denota { aa } ∪ { bb } = { aa, bb }
• (a + b)*(aa + bb) denota { a, b }* { aa, bb }
Portanto, GERA( (a + b)*(aa + bb) ) é
{ aa, bb, aaa, abb, baa, bbb,
aaaa, aabb, abaa, abbb, baaa, babb, bbaa, bbbb,… }

Linguagens Formais e Autômatos - P. Blauth Menezes 106
Teorema: Expressão Regular → Linguagem Regular
Se r é ER, então GERA(r) é linguagem regular
Prova: (por indução)
Uma linguagem é regular sse é possível construir um
• AFD, AFN ou AFNε que reconheça a linguagem
É necessário mostrar que
• dada uma ER r qualquer
• é possível construir um autômato finito M tal que
ACEITA(M) = GERA(r)
Demonstração: indução no número de operadores

Linguagens Formais e Autômatos - P. Blauth Menezes 107
Base de indução. r ER com zero operadores
• r = ∅
∗ Autômato???
• r = ε
∗ Autômato???
• r = x (x ∈ Σ)
∗ Autômato???

Linguagens Formais e Autômatos - P. Blauth Menezes 108
Base de indução. r ER com zero operadores
• r = ∅. Autômato: M1
= (∅, { q0
}, δ1, q0, ∅)
q0
• r = ε. Autômato: M2
= (∅, { qf
}, δ2, qf, { qf
})
qf
• r = x (x ∈ Σ). Autômato: M3
= ({ x }, { q0, qf
}, δ3, q0, { qf
})
x
qfq0

Linguagens Formais e Autômatos - P. Blauth Menezes 109
Hipótese de Indução. r ER com até n > 0 operadores
• suponha que é possível definir um AF que aceita GERA(r)
Passo de Indução. r ER com n + 1 operadores
• r pode ser representada por (r1 e r2 possuem conjuntamente no
máximo n operadores)
∗ r = r1
+ r2
∗ r = r1r2
∗ r = r1*
• por hipótese de indução, existem
M1
= (Σ1, Q1, δ1, q01, { qf1
}) e M2
= (Σ2, Q2, δ2, q02, { qf2
})
ACEITA(M1) = GERA(r1) e ACEITA(M2) = GERA(r2)

Linguagens Formais e Autômatos - P. Blauth Menezes 110
r = r1
+ r2
• Autômato???
r = r1r2
• Autômato???
r = r1*
• Autômato???

Linguagens Formais e Autômatos - P. Blauth Menezes 111
• sem perda de generalidade:
∗ M1 e M2 possuem exatamente um estado final (exercícios)
∗ estados dos autômatos: conjunto disjuntos (se não forem?)
r = r1
+ r2. Autômato M = (Σ1
∪ Σ2, Q1
∪ Q2
∪ { q0, qf
}, δ, q0, { qf
})
qf
q
f1
q
f2
q0
q
01
q
02
M
1
M
2
ε
ε
ε
ε

Linguagens Formais e Autômatos - P. Blauth Menezes 112
r = r1r2. Autômato M = (Σ1
∪ Σ2, Q1
∪ Q2, δ, q01, { qf2
})
q
01
M
1
q
f1 q
02
M
2
q
f2
ε
r = r1*. Autômato (suponha q0
∉ Q1, qf
∉ Q1)
• M = (Σ1, Q1
∪ { q0, qf
}, δ, q0, { qf
})
q
01
M
1
q
f1q0
ε
ε
ε
ε
qf

Linguagens Formais e Autômatos - P. Blauth Menezes 113
◆ Exercício: no caso r = r1
+ r2
• não introduzir os estados q0 e qf
• identificar ("unificar") os estados iniciais/finais de M1/M2 ???
qf
q
f1
q
f2
q0
q
01
q
02
M
1
M
2
ε
ε
ε
ε

Linguagens Formais e Autômatos - P. Blauth Menezes 114
◆ Exercício: no caso r = r1*
• não introduzir o estado qf
• manter qf1 como o estado final
• transição vazia de q0 para qf1 ???
q
01
M
1
q
f1q0
ε
ε
ε
ε
qf

Linguagens Formais e Autômatos - P. Blauth Menezes 115
Exp: AFNε a partir de a*(aa + bb)
ER AFNε
a
a
b
b
a*
ε a
ε
ε
ε
aa
a aε

Linguagens Formais e Autômatos - P. Blauth Menezes 116
ER AFNε
bb
b bε
(aa + bb)
a
ε
ε

b bε
ε
ε

Linguagens Formais e Autômatos - P. Blauth Menezes 117
• Autômato resultante: a*(aa + bb)
ε
a aε
b bε
ε
ε
ε
ε
ε a
ε
ε
ε

Linguagens Formais e Autômatos - P. Blauth Menezes 118
Teorema: Linguagem Regular → Expressão Regular
Se L é linguagem regular, então existe uma ER r tal que
GERA(r) = L
O teorema não será provado

Linguagens Formais e Autômatos - P. Blauth Menezes 119
3 – Linguagens Regulares
3.1Sistema de Estados Finitos
3.2Composição Seqüencial, Concorrente e
Não-Determinista
3.3Autômato Finito
3.4Autômato Finito Não-Determinístico
3.5Autômato Finito com Movimentos Vazios
3.6Expressão Regular
3.7Gramática Regular

Linguagens Formais e Autômatos - P. Blauth Menezes 120
3.7 Gramática Regular
◆ Formalismo Gramáticas
• permite definir tanto linguagens regulares como não-regulares
◆ Gramática Regular
• restrições nas regras de produção
• existe mais de uma forma de restringir as regras de produção
∗ Gramáticas Lineares

Linguagens Formais e Autômatos - P. Blauth Menezes 121
Def: Gramáticas Lineares
G = (V, T, P, S)
Gramática Linear à Direita (GLD)
A → wB ou A → w
Gramática Linear à Esquerda (GLE)
A → Bw ou A → w
Gramática Linear Unitária à Direita (GLUD)
• como na gramática linear à direita. Adicionalmente
 w  ≤ 1
Gramática Linear Unitária à Esquerda (GLUE)
• como na gramática linear à esquerda. Adicionalmente
 w  ≤ 1

Linguagens Formais e Autômatos - P. Blauth Menezes 122
◆ Lado direito de uma produção
• no máximo uma variável
∗ sempre antecede (linear à esquerda)
∗ ou sucede (linear à direita)
∗ qualquer subpalavra (eventualmente vazia) de terminais
◆ Exercício
• gramática simultaneamente nas quatro formas lineares?

Linguagens Formais e Autômatos - P. Blauth Menezes 123
Teorema: Equivalência das Gramáticas Lineares
Seja L uma linguagem. Então:
• L é gerada por uma GLD sse
• L é gerada por uma GLE sse
• L é gerada por uma GLUD sse
• L é gerada por uma GLUE
◆ Diversas formas das gramáticas lineares
• formalismos equivalentes
• demonstração do teorema: exercício
Def: Gramática Regular (GR)
G é uma gramática linear

Linguagens Formais e Autômatos - P. Blauth Menezes 124
Def: Linguagem Gerada
G = (V, T, P, S) gramática
L(G) ou GERA(G)
é tal que
L(G) = { w ∈ T*  S ⇒
+
w }
Exp: Gramática Regular: a(ba)*
???

Linguagens Formais e Autômatos - P. Blauth Menezes 125
Exp: Gramática Regular: a(ba)*
Linear à Direita. G = ({ S, A }, { a, b }, P, S)
• S → aA
• A → baA  ε
Linear à Esquerda. G = ({ S }, { a, b }, P, S)
• S → Sba  a
Linear Unitária à Direita. G = ({ S, A, B }, { a, b }, P, S)
• S → aA
• A → bB  ε
• B → aA
Linear Unitária à Esquerda. G = ({ S, A }, { a, b }, P, S)
• S → Aa  a
• A → Sb

Linguagens Formais e Autômatos - P. Blauth Menezes 126
Exp: Gramática Regular: (a + b)*(aa + bb)
Linear à Direita. G = ({ S, A }, { a, b }, P, S), e P é tal que
• S → aS  bS  A
• A → aa  bb
Linear à Esquerda. G = ({ S, A }, { a, b }, P, S), e P é tal que
• S → Aaa  Abb
• A → Aa  Ab  ε

Linguagens Formais e Autômatos - P. Blauth Menezes 127
Obs: Gramática Linear à Esquerda e Linear à Direita
Suponha  w  ≥ 1
Produções simultaneamente do tipo
• A → wB (direita) e
• A → Bw (esquerda)
correspondente linguagem gerada
• poderá não ser regular
• não é uma gramática regular
É possível desenvolver uma gramática, com produções lineares à direita
e à esquerda, que gera (exercício)
{ a
n
b
n
 n ∈ N }

Linguagens Formais e Autômatos - P. Blauth Menezes 128
Teorema: Gramática Regular → Linguagem Regular
Se L é gerada por uma gramática regular,
então L é linguagem regular
Prova: (por indução)
Mostrar que
• dado uma GLUD G qualquer
• é possível construir um AFNε M tq
ACEITA(M) = GERA(G)
M simula as derivações de G
• demonstração de que ACEITA(M) = GERA(r)
• indução no número de derivações

Linguagens Formais e Autômatos - P. Blauth Menezes 129
Suponha G = (V, T, P, S) uma GLUD. Seja o AFNε
M = (Σ, Q, δ, q0, F)
• Σ = T
• Q = V ∪ { qf
} (suponha qf
∉ V)
• F = { qf
}
• q0
= S
Tipo da ProduçãoTransição Gerada
A → ε δ(A, ε) = qf
A → a δ(A, a) = qf
A → B δ(A, ε) = B
A → aB δ(A, a) = B

Linguagens Formais e Autômatos - P. Blauth Menezes 130
M simula as derivações de G
ACEITA(M) = GERA(G)
Base de indução. S ⇒
1
α. Quatro casos
• α = ε existe S → ε Logo, δ(S, ε) = qf
• α = a existe S → a Logo, δ(S, a) = qf
• α = A existe S → A Logo, δ(S, ε) = A
• α = aA existe S → aA Logo, δ(S, a) = A
Hipótese de indução. S ⇒
n
α, n > 1. Dois casos
• α = w então δ*(S, w) = qf (1)
• α = wA então δ*(S, w) = A (2)
Passo de Indução. S ⇒
n+1
α. Então (2) é a única hipótese que importa
S ⇒
n
wA ⇒
1
α

Linguagens Formais e Autômatos - P. Blauth Menezes 131
Quatro casos:
• α = wε = w. Existe A → ε. Logo
δ*(S, wε) = δ(δ*(S, w), ε) = δ(A, ε) = qf
• α = wb. Existe A → b. Logo
δ*(S, wb) = δ(δ*(S, w), b) = δ(A, b) = qf
• α = wB. Existe A → B. Logo
δ*(S, wε) = δ(δ*(S, w), ε) = δ(A, ε) = B
• α = wbB. Existe A → bB. Logo
δ*(S, wb) = δ(δ*(S, w), b) = δ(A, b) = B

Linguagens Formais e Autômatos - P. Blauth Menezes 132
Exp: Construção de um AFNε a partir de uma GR
G = ({ S, A, B }, { a, b }, P, S)
• S → aA
• A → bB  ε
• B → aA
M = ({ a, b }, { S, A, B, qf
}, δ, S, { qf
})
S A
B
qf
a ε
b
a

Linguagens Formais e Autômatos - P. Blauth Menezes 133
Produção Transição
S → aA δ(S, a) = A
A → bB δ(A, b) = B
A → ε δ(A, ε) = qf
B → aA δ(B, a) = A
S A
B
qf
a ε
b
a

Linguagens Formais e Autômatos - P. Blauth Menezes 134
Teorema: Linguagem Regular → Gramática Regular
Se L é linguagem regular, então existe G, gramática regular que gera L
Prova: (por indução)
L é linguagem regular
• existe um AFD M = (Σ, Q, δ, q0, F) tal que ACEITA(M) = L
Construição de uma GLUD G
GERA(G) = ACEITA(M)
• derivação simula a função programa estendida

Linguagens Formais e Autômatos - P. Blauth Menezes 135
Suponha um AFD M = (Σ, Q, δ, q0, F) tal que ACEITA(M) = L
Seja a gramática regular
G = (V, T, P, S)
• V = Q ∪ { S } (suponha S ∉ Q)
• T = Σ
• suponha qi, qk
∈ Q, qf
∈ F e a ∈ Σ
TransiçãoProdução
- S → q0

- qf
→ ε
δ(qi, a) = qkqi
→ aqk

Linguagens Formais e Autômatos - P. Blauth Menezes 136
GERA(G) = ACEITA(M)? Indução no tamanho da palavra (w ∈ Σ*)
Base de Indução.  w  = 0
• por definição, S → q0 é produção
• se ε ∈ ACEITA(M), então
∗ q0 é estado final
∗ q0
→ ε é produção
S ⇒ q0
⇒ ε
Hipótese de Indução.  w  = n (n ≥ 1) e δ*(q0, w) = q. Dois casos
• q não é final. Suponha S ⇒
n
wq (única hipótese que importa)
• q é final. Suponha S ⇒
n
wq ⇒ w

Linguagens Formais e Autômatos - P. Blauth Menezes 137
Passo de Indução.  wa  = n + 1 e δ*(q0, wa) = p. Então
δ(δ*(q0, w), a) = δ(q, a) = p
• p não é final
∗ S ⇒
n
wq ⇒
1
wap
• p é final
∗ S ⇒
n
wq ⇒
1
wap ⇒
1
wa

Linguagens Formais e Autômatos - P. Blauth Menezes 138
Exp: Construção de uma GR a partir de um AFD
M = ({ a, b, c }, { q0, q1, q2
}, δ, q0, { q0, q1, q2
})
q0
b c
q1 q2
a b c
G = ({ q0, q1, q2, S }, { a, b, c }, P, S)

Linguagens Formais e Autômatos - P. Blauth Menezes 139
Transição Produção
- S → q0
- q0
→ ε
- q1
→ ε
- q2
→ ε
δ(q0, a) = q0 q0
→ aq0
δ(q0, b) = q1 q0
→ bq1
δ(q1, b) = q1 q1
→ bq1
δ(q1, c) = q2 q1
→ cq2
δ(q2, c) = q2 q2
→ cq2
q0
b c
q1 q2
a b c

Linguagens Formais e Autômatos - P. Blauth Menezes 140
Linguagens Formais e Autômatos
P. Blauth Menezes
1 Introdução e Conceitos Básicos
2 Linguagens e Gramáticas
3 Linguagens Regulares
4 Propriedades das Linguagens Regulares
5 Autômato Finito com Saída
6 Linguagens Livres do Contexto
7 Propriedades e Reconhecimento das Linguagens
Livres do Contexto
8 Linguagens Recursivamente Enumeráveis e
Sensíveis ao Contexto
9 Hierarquia de Classes e Linguagens e Conclusões
Tags