Linguagens 1 Linguagens Um alfabeto um cojunto finito
Linguagens 1
Linguagens Um alfabeto é um cojunto finito de símbolos String (ou palavra): sequência de símbolos Exemplos: “cat”, “dog”, “house”, … Definida sobre um alfabeto: 2
Linguagens Uma linguagem é um conjunto de strings sobre um determinado alfabeto : Conjunto de todos os strings sobre o alfabeto 3
Alfabeto e Strings Vamos usar alfabetos pequenos: Strings 4
Operações sobre Strings Concatenação 5
Reverso 6
Comprimento de um String Comprimento: Exemplos: 7
Definição Recursiva de Comprimento Para o string vazio: Para qualquer string : Exemplo: 8
Comprimento de Concatenação Exemplo: 9
Prova de Comprimento de Concatenação afirmação: Prova: Indução Caso base: 10
Hipótese de Indução: para Passo Indutivo: vamos provar para 11
Passo Indutivo Seja onde Da definição de length: Da hipótese de indução: Portanto: 12
String vazio String sem nenhuma letra: Observações: 13
Substring de um string: subsequência de caracteres consecutivos String Substring 14
Prefixo e Sufixo Prefixos Sufixos prefixo sufixo 15
Outra Operação Exemplo: Definição: 16
A Operação * : o conjunto de todos os possíveis strings do alfabeto 17
A Operação + : o conjunto de todos os possíveis strings do alfabeto exceto 18
Linguagem Uma linguagem é qualquer subconjunto de Exemplo: Linguagens: 19
Outro Exemplo Uma linguagem infinita 20
Operações sobre Linguagens Operações usuais sobre conjuntos Complemento: 21
Reverso Definição: Exemplos: 22
Concatenação Definição: Exemplo: 23
Outra Operação Definição: Caso epecial: 24
Mais Exemplos 25
Fecho de Kleene * Definição: Exemplo: 26
Fecho Positivo Definição: 27
Autômato Finito 28
Autômato Finito Entrada String Saída Autômato Finito String 29
Aceitador Finito Entrada String Saída Autômato Finito “Aceita” ou “Rejeita” 30
Grafo de. Transição Autômato Finito para abba estado inicial estado transição estado final “aceita” 31
Configuração Inicial String de Entrada 32
Lendo a Entrada 33
34
35
36
Saída: “aceita” 37
Rejeição 38
39
40
41
Saída: “rejeita” 42
Outro Exemplo 43
44
45
46
Saída: “aceita” 47
Rejeição 48
49
50
51
Saída: “rejeita” 52
Formalização Autômato Finito Determinista (DFA) : conjunto de estados : alfabeto de entrada : função de transição : estado inicial : conjunto de estados finais 53
Alfabeto de Entrada 54
Conjunto de Estados 55
Estado Inicial 56
Conjunto de Estados Finais 57
Função de Transição 58
59
60
61
Função de. Transição 62
Função de. Transição Extendida 63
64
65
66
Observação: Existe um caminho de com rótulo para 67
Definição Recursiva 68
69
Linguagens Aceitas por DFAs Seja um DFA Definição: A linguagem contém todos os strings aceitos por = {strings que levam a um estado final } 70
Exemplo aceita 71
Outro Exemplo aceita 72
Formalmente Dado um DFA Linguagem aceita por alfabeto função de transição : estado inicial estados finais 73
Observação Linguagem aceita por Linguagem rejeitada por : : 74
Mais Exemplos aceita estado de erro 75
= { todos os strings com prefixo } aceita 76
= { todos os strings que não contêm o substring } 77
Linguagens Regulares Uma linguagem é regular se existe um DFA tal que O conjunto de todas as linguagens regulares constitui uma classe de linguagens 78
Exemplo A linguagem é regular: 79
- Slides: 79