Linguagens Formais e                       Autômatos                                            P. Blauth Menezes         ...
Linguagens Formais e Autômatos                                                     P. Blauth Menezes                      ...
3 – Linguagens Regulares     3.1 Sistema de Estados Finitos     3.2 Composição Seqüencial, Concorrente e         Não-Deter...
3 – Linguagens RegularesLinguagens Formais e Autômatos - P. Blauth Menezes   4
3 Linguagens Regulares◆    Linguagens Regulares ou Tipo 3 - formalismos     • Autômato Finito        ∗ formalismo operacio...
◆    Hierarquia de Chomsky     • classe de linguagens mais simples     • algoritmos de reconhecimento, geração ou conversã...
◆    Complexidade de algoritmos - autômatos finitos     • classe de algoritmos mais eficientes (tempo de processamento)   ...
◆    Importantes propriedades - podem ser usadas para     • construir novas linguagens regulares        ∗ a partir de ling...
◆    Universo de aplicações das linguagens regulares     • muito grande     • constantemente ampliado◆    Exemplo típico e...
◆    Capítulos subseqüentes     • minimização de autômatos finitos     • propriedades da Classe     • algumas importantes ...
3 – Linguagens Regulares     3.1 Sistema de Estados Finitos     3.2 Composição Seqüencial, Concorrente e         Não-Deter...
3.1 Sistema de Estados Finitos◆    Sistema de Estados Finitos     • modelo matemático de sistema com entradas e saídas dis...
◆    Motivacional     • associados a diversos tipos de sistemas naturais e construídosExp: ElevadorNão memoriza as requisi...
◆    Restrição     • nem todos os sistemas de estados finitos     • são adequados para serem estudados por esta abordagemE...
Exp: Computador     • processadores e memórias: sistema de estados finitos     • estudo da computabilidade        ∗ exige ...
3 – Linguagens Regulares     3.1 Sistema de Estados Finitos     3.2 Composição Seqüencial, Concorrente e         Não-Deter...
3.2 Composição Seqüencial,    Concorrente e Não-Determinista◆    Construção composicional de sistema     • construído a pa...
◆    Seqüencial     • execução da próxima componente     • depende da terminação da componente anterior◆    Concorrente   ...
◆    Não-Determinista     • próxima componente: escolha entre diversas alternativas     • em oposição à determinista      ...
Exp: BancoSeqüencial  • fila: próximo cliente depende do atendimento do anterior  • pagamento de uma conta depende do forn...
◆    Linguagens Formais     • seqüencial e não-determinimo: especialmente importantes◆    Semântica do não-determinismo ad...
3 – Linguagens Regulares     3.1 Sistema de Estados Finitos     3.2 Composição Seqüencial, Concorrente e         Não-Deter...
3.3 Autômato Finito◆    Autômato Finito: sistema de estados finitos     • número finito e predefinido de estados     • mod...
◆    Formalismo operacional/reconhecedor - pode ser     • determinístico        ∗ dependendo do estado corrente e do símbo...
◆    Movimento vazio     • pode ser visto como transições encapsuladas       ∗ excetuando-se por uma eventual mudança de e...
◆    Autômato finito (determinístico): máquina constituída     por     • Fita: dispositivo de entrada        ∗ contém info...
◆    Fita é finita     • dividida em células     • cada célula armazena um símbolo     • símbolos pertencem a um alfabeto ...
◆    Unidade de controle     • número finito e predefinido de estados        ∗ origem do termo controle finito     • leitu...
◆    Programa: função parcial     • dependendo do estado corrente e do símbolo lido     • determina o novo estado do autôm...
Def: Autômato Finito (Determinístico) ou AFD                                                     M = (Σ, Q, δ, q0, F)     ...
◆    Autômato finito como um diagrama: δ(p, a) = q                                                         a              ...
◆    Estados iniciais e finais                                              q0         qf◆    Transições paralelas: δ(q, a...
◆    Função programa como uma tabela de dupla entrada                                                     δ(p, a) = q     ...
◆    Computação de um autômato finito     • sucessiva aplicação da função programa     • para cada símbolo da entrada (da ...
Exp: Autômato Finito: aa ou bb como subpalavra                      L1 = { w  w possui aa ou bb como subpalavra }Autômato...
a              b                                                         q0                                              b...
a              b                                                               q0                                         ...
Obs: Autômato Finito Sempre PáraComo  • qualquer palavra é finita  • novo símbolo é lido a cada aplicação da função progra...
Obs: Autômato Finito × Grafo Finito DiretoQual a diferença entre um autômato finito e um grafo finito direto?Qualquer autô...
◆    Definição formal do comportamento de um autômato     finito     • dar semântica à sintaxe     • necessário estender a...
Def: Função Programa Estendida, ComputaçãoM = (Σ, Q, δ, q0, F) autômato finito determinístico                             ...
Exp: Função Programa Estendida                                                     a              b                       ...
Def: Linguagem Aceita, Linguagem RejeitadaM = (Σ, Q, δ, q0, F) autômato finito determinístico.Linguagem Aceita ou Linguage...
◆    Cada autômato finito M sobre Σ     • induz uma partição de Σ* em duas classes de equivalência     • e se um dos dois ...
◆    Diferentes autômatos finitos podem aceitar uma     mesma linguagemDef: Autômatos Finitos EquivalentesM1 e M2 são Autô...
Exp: …Autômato Finito: Vazia, Todas as PalavrasLinguagens sobre o alfabeto { a, b }                                      L...
Exp: Autômato Finito: Vazia, Todas as Palavras                                      L2 = ∅     e     L3 = Σ*              ...
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 }      ...
Obs: Função Programa × Função Programa EstendidaObjetivando simplificar a notação     • δ e a sua correspondente extensão ...
Obs: …Computações × Caminhos de um Grafo    M                                                        caminhos M           ...
3 – Linguagens Regulares     3.1 Sistema de Estados Finitos     3.2 Composição Seqüencial, Concorrente e         Não-Deter...
3.4             Autômato Finito Não-DeterminísticoLinguagens Formais e Autômatos - P. Blauth Menezes   52
◆    Não-determinismo     • importante generalização dos modelos de máquinas     • fundamental no estudo        ∗ Modelos ...
◆    Nem sempre não-determinismo aumenta o poder     • reconhecimento de linguagens de uma classe de autômatos        ∗ qu...
Def: Autômato Finito Não-Determinístico (AFN)                                                     M = (Σ, Q, δ, q0, F)    ...
◆    Autômato como diagrama                                            δ(p, a) = { q1, q2, …, qn }                        ...
◆    Computação de um autômato finito não-     determinístico     • sucessiva aplicação da função programa     • para cada...
Def: Função Programa Estendida, ComputaçãoM = (Σ, Q, δ, q0, F) autômato finito não-determinístico                         ...
◆    Parada do processamento     • Aceita a entrada        ∗ após processar o último símbolo da fita, existe pelo menos um...
Def: Linguagem Aceita, Linguagem RejeitadaSeja M = (Σ, Q, δ, q0, F) um autômato finito não-determinísticoLinguagem Aceita ...
Exp: Autômato Finito Não-Determinístico: aa ou bb     como subpalavra                      L5 = { w  w possui aa ou bb co...
q0       a,b                                                     a        b                                  q1           ...
q0       a,b                                                         a        b                                         q1...
q0        a,b                                                              a            b                                 ...
Exp: AFN: aaa como sufixo                                L6 = { w  w possui aaa como sufixo }Autômato finito não-determin...
◆    Não-determinismo     • aparentemente, um significativo acréscimo ao poder computacional       autômato finito     • n...
Prova: (por indução)Mostrar que  • a partir de um AFN M qualquer  • construir um AFD MD que realiza as mesmas computações ...
M = (Σ, Q, δ, q0, F) um AFN qualquer. AFD construído                                            MD = (Σ, QD, δD, 〈q0〉, FD)...
AFD MD simula as computações do AFN M ???  • indução no tamanho da palavra  • mostrar que           δD*(〈q0〉, w) = 〈q1…qu〉...
Hipótese de indução.  w  = n e n ≥ 1. Suponha que:          δD*(〈q0〉, w) = 〈q1…qu〉                      sse    δ*({ q0 }...
◆    Portanto, linguagem aceita por AFN     • é Linguagem Regular ou Tipo 3Obs: Determinismo × Não-DeterminismoMuitas veze...
Exp: AFN → AFD                         M6 = ({ a, b }, { q0, q1, q2, qf }, δ6, q0, { qf })                                ...
AFN                                             a               a             a                                q0         ...
δ6D                    a                 b                                       p 0 = 〈q0〉                 〈q0q 1〉       ...
3 – Linguagens Regulares     3.1 Sistema de Estados Finitos     3.2 Composição Seqüencial, Concorrente e         Não-Deter...
3.5 Autômato Finito com Movimentos    Vazios◆    Movimentos vazios     • generalizam os movimentos não-determinísticos◆   ...
◆    Algumas vantagens     • facilita algumas construções e demonstrações◆    Poder computacional p/ autômatos finitos    ...
Def: Autômato Finito com Movimentos Vazios - AFNε                                                     M = (Σ, Q, δ, q0, F)...
◆    Autômato como diagrama             δ(q, ε) = { p0 }                  δ(q, a1) = { p1 }   …   δ(q, an) = { pn }       ...
◆    Computação de um AFNε     • análoga à de um AFN◆    Processamento de uma transição vazia     • não-determinístico    ...
Exp: AFNε: a’s antecedem b’s                                M7 = ({ a, b }, { q0, qf }, δ7, q0, { qf })                   ...
◆    Antes de definir computação     • computação de transições vazias a partir de        ∗ um estado        ∗ um conjunto...
Def: Computação VaziaM = (Σ, Q, δ, q0, F)Computação Vazia ou Função Fecho Vazio (um estado)                               ...
◆    Por simplicidade, δε e δε*     • ambas denotadas por δεExp: Computação Vazia                                         ...
◆    Computação de um AFNε para uma entrada w     • sucessiva aplicação da função programa     • para cada símbolo de w (d...
Def: Função Programa Estendida, ComputaçãoM = (Σ, Q, δ, q0, F) AFNε                                                     δ*...
Exp: Computação Vazia, Computação                     L8 = { w  w possui como sufixo a ou bb ou ccc }        M8 = ({ a, b...
a                                                               q1                                            ε           ...
Teorema: Equivalência entre AFN e AFNεClasse dos Autômatos Finitos com Movimentos Vazios é equivalente àClasse dos Autômat...
M = (Σ, Q, δ, q0, F) um AFNε qualquer. AFN construído                                              MN = (Σ, Q, δN, q0, FN)...
◆    Portanto, linguagem aceita por AFNε     • é Linguagem Regular ou Tipo 3Linguagens Formais e Autômatos - P. Blauth Men...
Exp: Construção de um AFN a partir de um AFNεAFNε - M9 = ({ a, b }, { q0, q1, q2 }, δ9, q0, { q2 })                       ...
ε             ε                                 q0                      q1             q2                                 ...
ε            ε                                 q0                      q1           q2                                    ...
ε            ε                                 q0                      q1           q2                                    ...
ε                   ε                                 q0                          q1                     q2               ...
ε            ε                                 q0                      q1           q2                                    ...
3 – Linguagens Regulares     3.1 Sistema de Estados Finitos     3.2 Composição Seqüencial, Concorrente e         Não-Deter...
3.6 Expressão Regular◆    Toda linguagem regular pode ser descrita por uma     • Expressão Regular◆    Formalismo denotaci...
Def: Expressão Regular (ER)Base de Indução     • ∅ é ER        ∗ denota a linguagem vazia: ∅     • ε é ER        ∗ denota ...
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   ...
Def: Linguagem Gerada por uma ERSe r é ER, a correspondente linguagem denotada é dita     • Linguagem Gerada por r        ...
Exp: Expressão Regular                                         ER          Linguagem Gerada ???                          a...
Exp: …Expressão Regular              ER                                     Linguagem Geradaaa                            ...
Exp: …Expressão RegularLinguagem gerada pela ER (a + b)*(aa + bb)     • a e b denotam { a } e { b }, respectivamente     •...
Teorema: Expressão Regular → Linguagem RegularSe r é ER, então GERA(r) é linguagem regularProva: (por indução)Uma linguage...
Base de indução. r ER com zero operadores     • r=∅        ∗ Autômato???     • r=ε        ∗ Autômato???     • r = x (x ∈ Σ...
Base de indução. r ER com zero operadores     • r = ∅. Autômato: M1 = (∅, { q0 }, δ1, q0, ∅)                              ...
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 I...
r = r1 + r2     • Autômato???r = r1r2     • Autômato???r = r1*     • Autômato???Linguagens Formais e Autômatos - P. Blauth...
• sem perda de generalidade:        ∗ M1 e M2 possuem exatamente um estado final (exercícios)        ∗ estados dos autômat...
r = r1r2. Autômato M = (Σ1 ∪ Σ2, Q1 ∪ Q2, δ, q01, { qf2 })                                        M1                   ε  ...
◆    Exercício: no caso r = r1 + r2     • não introduzir os estados q0 e qf     • identificar ("unificar") os estados inic...
◆    Exercício: no caso r = r1 *     • não introduzir o estado qf     • manter qf1 como o estado final     • transição vaz...
Exp: AFNε a partir de a*(aa + bb)                                  ER                         AFNε                        ...
ER                         AFNε                                  bb                     b     ε    b                      ...
• Autômato resultante: a*(aa + bb)                                                                 a   ε   a              ...
Teorema: Linguagem Regular → Expressão RegularSe L é linguagem regular, então existe uma ER r tal que                     ...
3 – Linguagens Regulares     3.1 Sistema de Estados Finitos     3.2 Composição Seqüencial, Concorrente e         Não-Deter...
3.7 Gramática Regular◆    Formalismo Gramáticas     • permite definir tanto linguagens regulares como não-regulares◆    Gr...
Def: Gramáticas Lineares                                                     G = (V, T, P, S)Gramática Linear à Direita (G...
◆    Lado direito de uma produção     • no máximo uma variável        ∗ sempre antecede (linear à esquerda)        ∗ ou su...
Teorema: Equivalência das Gramáticas LinearesSeja L uma linguagem. Então:     •   L é gerada por uma GLD sse     •   L é g...
Def: Linguagem GeradaG = (V, T, P, S) gramática                                              L(G)   ou     GERA(G)é tal qu...
Exp: Gramática Regular: a(ba)*Linear à Direita. G = ({ S, A }, { a, b }, P, S)   • S → aA   • A → baA  εLinear à Esquerda...
Exp: Gramática Regular: (a + b)*(aa + bb)Linear à Direita. G = ({ S, A }, { a, b }, P, S), e P é tal que     • S → aS  bS...
Obs: Gramática Linear à Esquerda e Linear à DireitaSuponha  w  ≥ 1Produções simultaneamente do tipo     • A → wB (direit...
Teorema: Gramática Regular → Linguagem RegularSe L é gerada por uma gramática regular,então L é linguagem regularProva: (p...
Suponha G = (V, T, P, S) uma GLUD. Seja o AFNε                                                     M = (Σ, Q, δ, q0, F)   ...
M simula as derivações de G                                              ACEITA(M) = GERA(G)Base de indução. S ⇒1 α. Quatr...
Quatro casos:     • α = wε = w. Existe A → ε. Logo                               δ*(S, wε) = δ(δ*(S, w), ε) = δ(A, ε) = qf...
Exp: Construção de um AFNε a partir de uma GR                                         G = ({ S, A, B }, { a, b }, P, S)   ...
Produção        Transição                                                S → aA       δ(S, a) = A                         ...
Teorema: Linguagem Regular → Gramática RegularSe L é linguagem regular, então existe G, gramática regular que gera LProva:...
Suponha um AFD M = (Σ, Q, δ, q0, F) tal que ACEITA(M) = LSeja a gramática regular                                         ...
GERA(G) = ACEITA(M)? Indução no tamanho da palavra (w ∈ Σ*)Base de Indução.  w  = 0     • por definição, S → q0 é produç...
Passo de Indução.  wa  = n + 1 e δ*(q0, wa) = p. Então                                         δ(δ*(q0, w), a) = δ(q, a)...
Exp: Construção de uma GR a partir de um AFDM = ({ a, b, c }, { q0, q1, q2 }, δ, q0, { q0, q1, q2 })                      ...
Transição              Produção                                               -                   S → q0                  ...
Linguagens Formais e Autômatos                                                     P. Blauth Menezes                      ...
Próximos SlideShares
Carregando em…5
×

03 linguagens regulares

1.305 visualizações

Publicada em

0 comentários
2 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
1.305
No SlideShare
0
A partir de incorporações
0
Número de incorporações
20
Ações
Compartilhamentos
0
Downloads
70
Comentários
0
Gostaram
2
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

03 linguagens regulares

  1. 1. Linguagens Formais e Autômatos P. Blauth Menezes blauth@inf.ufrgs.br Departamento de Informática Teórica Instituto de Informática / UFRGSLinguagens Formais e Autômatos - P. Blauth Menezes 1
  2. 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õesLinguagens Formais e Autômatos - P. Blauth Menezes 2
  3. 3. 3 – Linguagens Regulares 3.1 Sistema de Estados Finitos 3.2 Composição Seqüencial, Concorrente e Não-Determinista 3.3 Autômato Finito 3.4 Autômato Finito Não-Determinístico 3.5 Autômato Finito com Movimentos Vazios 3.6 Expressão Regular 3.7 Gramática RegularLinguagens Formais e Autômatos - P. Blauth Menezes 3
  4. 4. 3 – Linguagens RegularesLinguagens Formais e Autômatos - P. Blauth Menezes 4
  5. 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çãoLinguagens Formais e Autômatos - P. Blauth Menezes 5
  6. 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-regularesLinguagens Formais e Autômatos - P. Blauth Menezes 6
  7. 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ínimoLinguagens Formais e Autômatos - P. Blauth Menezes 7
  8. 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 algoritmosLinguagens Formais e Autômatos - P. Blauth Menezes 8
  9. 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ídiasLinguagens Formais e Autômatos - P. Blauth Menezes 9
  10. 10. ◆ Capítulos subseqüentes • minimização de autômatos finitos • propriedades da Classe • algumas importantes aplicaçõesLinguagens Formais e Autômatos - P. Blauth Menezes 10
  11. 11. 3 – Linguagens Regulares 3.1 Sistema de Estados Finitos 3.2 Composição Seqüencial, Concorrente e Não-Determinista 3.3 Autômato Finito 3.4 Autômato Finito Não-Determinístico 3.5 Autômato Finito com Movimentos Vazios 3.6 Expressão Regular 3.7 Gramática RegularLinguagens Formais e Autômatos - P. Blauth Menezes 11
  12. 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 entradaLinguagens Formais e Autômatos - P. Blauth Menezes 12
  13. 13. ◆ Motivacional • associados a diversos tipos de sistemas naturais e construídosExp: ElevadorNão memoriza as requisições anteriores • Estado: sumaria "andar corrente" e "direção de movimento" • Entrada: requisições pendentesExp: Analisador Léxico, Processador de Texto • Estado: memoriza a estrutura do prefixo da palavra em análise • Entrada: textoLinguagens Formais e Autômatos - P. Blauth Menezes 13
  14. 14. ◆ Restrição • nem todos os sistemas de estados finitos • são adequados para serem estudados por esta abordagemExp: Cérebro humano • Neurônio: número finito de bits • Cérebro: cerca de 235 células ∗ abordagem pouco eficiente ∗ explosão de estadosLinguagens Formais e Autômatos - P. Blauth Menezes 14
  15. 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çãoLinguagens Formais e Autômatos - P. Blauth Menezes 15
  16. 16. 3 – Linguagens Regulares 3.1 Sistema de Estados Finitos 3.2 Composição Seqüencial, Concorrente e Não-Determinista 3.3 Autômato Finito 3.4 Autômato Finito Não-Determinístico 3.5 Autômato Finito com Movimentos Vazios 3.6 Expressão Regular 3.7 Gramática RegularLinguagens Formais e Autômatos - P. Blauth Menezes 16
  17. 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-DeterministaLinguagens Formais e Autômatos - P. Blauth Menezes 17
  18. 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 tempoLinguagens Formais e Autômatos - P. Blauth Menezes 18
  19. 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 comunsLinguagens Formais e Autômatos - P. Blauth Menezes 19
  20. 20. Exp: BancoSeqüencial • fila: próximo cliente depende do atendimento do anterior • pagamento de uma conta depende do fornecimento de um valorConcorrente • diversos caixas atendem independentemente diversos clientes • clientes nos caixas: ações independentemente dos clientes na filaNã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 direitaLinguagens Formais e Autômatos - P. Blauth Menezes 20
  21. 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ênciaLinguagens Formais e Autômatos - P. Blauth Menezes 21
  22. 22. 3 – Linguagens Regulares 3.1 Sistema de Estados Finitos 3.2 Composição Seqüencial, Concorrente e Não-Determinista 3.3 Autômato Finito 3.4 Autômato Finito Não-Determinístico 3.5 Autômato Finito com Movimentos Vazios 3.6 Expressão Regular 3.7 Gramática RegularLinguagens Formais e Autômatos - P. Blauth Menezes 22
  23. 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ênciaLinguagens Formais e Autômatos - P. Blauth Menezes 23
  24. 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 24
  25. 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 computacionalLinguagens Formais e Autômatos - P. Blauth Menezes 25
  26. 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áquinaLinguagens Formais e Autômatos - P. Blauth Menezes 26
  27. 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 fitaLinguagens Formais e Autômatos - P. Blauth Menezes 27
  28. 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 controleLinguagens Formais e Autômatos - P. Blauth Menezes 28
  29. 29. ◆ Programa: função parcial • dependendo do estado corrente e do símbolo lido • determina o novo estado do autômatoLinguagens Formais e Autômatos - P. Blauth Menezes 29
  30. 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 • q 0 é um elemento distinguido de Q: estado inicial • F é um subconjunto de Q: conjunto de estados finaisLinguagens Formais e Autômatos - P. Blauth Menezes 30
  31. 31. ◆ Autômato finito como um diagrama: δ(p, a) = q a p q estado anterior símbolo lido novo estadoLinguagens Formais e Autômatos - P. Blauth Menezes 31
  32. 32. ◆ Estados iniciais e finais q0 qf◆ Transições paralelas: δ(q, a) = p e δ(q, b) = p a a,b p q p q bLinguagens Formais e Autômatos - P. Blauth Menezes 32
  33. 33. ◆ Função programa como uma tabela de dupla entrada δ(p, a) = q δ a … p q … q … …Linguagens Formais e Autômatos - P. Blauth Menezes 33
  34. 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 estadoLinguagens Formais e Autômatos - P. Blauth Menezes 34
  35. 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 }) δ1 a b q0 q1 q2 q1 qf q2 q2 q1 qf qf qf qfLinguagens Formais e Autômatos - P. Blauth Menezes 35
  36. 36. a b q0 b q1 q2 a a b qf a,b • q 1: "símbolo anterior é a" • q 2: "símbolo anterior é b" • qual a informação memorizada por q0 e qf • após identificar aa ou bb ∗ q f (final): varre o sufixo da entrada - terminar o processamentoLinguagens Formais e Autômatos - P. Blauth Menezes 36
  37. 37. a b q0 b q1 q2 a a b qf a,b a b b a q0 q1 q2 qf qfLinguagens Formais e Autômatos - P. Blauth Menezes 37
  38. 38. Obs: Autômato Finito Sempre PáraComo • qualquer palavra é finita • novo símbolo é lido a cada aplicação da função programanã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 38
  39. 39. Obs: Autômato Finito × Grafo Finito DiretoQual 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 finaisUsual considerar um autômato finito como grafo finito direto especial • herda resultados da Teoria dos GrafosLinguagens Formais e Autômatos - P. Blauth Menezes 39
  40. 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 palavraLinguagens Formais e Autômatos - P. Blauth Menezes 40
  41. 41. Def: Função Programa Estendida, ComputaçãoM = (Σ, 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 inicialLinguagens Formais e Autômatos - P. Blauth Menezes 41
  42. 42. Exp: Função Programa Estendida a b q0 b q1 q2 a a b qf a,b • δ*(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, ε) = qf função estendida sobre ε: fim da indução; ACEITALinguagens Formais e Autômatos - P. Blauth Menezes 42
  43. 43. Def: Linguagem Aceita, Linguagem RejeitadaM = (Σ, 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 43
  44. 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 44
  45. 45. ◆ Diferentes autômatos finitos podem aceitar uma mesma linguagemDef: Autômatos Finitos EquivalentesM1 e M2 são Autômatos Finitos Equivalentes se e somente se ACEITA(M1) = ACEITA(M2)Def: Linguagem Regular, Linguagem Tipo 3L é uma Linguagem Regular ou Linguagem Tipo 3 • existe pelo menos um autômato finito determinístico que aceita LLinguagens Formais e Autômatos - P. Blauth Menezes 45
  46. 46. Exp: …Autômato Finito: Vazia, Todas as PalavrasLinguagens sobre o alfabeto { a, b } L2 = ∅     e     L3 = Σ* M2 M3 q0 q0 a,b a,bLinguagens Formais e Autômatos - P. Blauth Menezes 46
  47. 47. Exp: Autômato Finito: Vazia, Todas as Palavras L2 = ∅     e     L3 = Σ* δ2 a b                 δ3 a b q0 q0 q0 q0 q0 q0 • diferença entre δ2 e δ3? • o que, exatamente, diferencia M2 de M3?Linguagens Formais e Autômatos - P. Blauth Menezes 47
  48. 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 } b q0 q1 b a a a a b q2 q3 bComo seria para aceitar um número ímpar de cada símbolo?Linguagens Formais e Autômatos - P. Blauth Menezes 48
  49. 49. Obs: Função Programa × Função Programa EstendidaObjetivando 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 aceitaLinguagens Formais e Autômatos - P. Blauth Menezes 49
  50. 50. Obs: …Computações × Caminhos de um Grafo M caminhos M Computações(M) 1 ε 1 = a d d a { ε, a, b, c, d, ab, bc, abc} 2 5 2 ab 5 ε ε b b abc bc 3 3 ACEITA (M) c ε c = {ε , d, abc} 4 4 εLinguagens Formais e Autômatos - P. Blauth Menezes 50
  51. 51. 3 – Linguagens Regulares 3.1 Sistema de Estados Finitos 3.2 Composição Seqüencial, Concorrente e Não-Determinista 3.3 Autômato Finito 3.4 Autômato Finito Não-Determinístico 3.5 Autômato Finito com Movimentos Vazios 3.6 Expressão Regular 3.7 Gramática RegularLinguagens Formais e Autômatos - P. Blauth Menezes 51
  52. 52. 3.4 Autômato Finito Não-DeterminísticoLinguagens Formais e Autômatos - P. Blauth Menezes 52
  53. 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ênciaLinguagens Formais e Autômatos - P. Blauth Menezes 53
  54. 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 recursosLinguagens Formais e Autômatos - P. Blauth Menezes 54
  55. 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 × Σ → 2Q ∗ transição: δ(p, a) = { q1, q2, …, qn } • q 0 é um elemento distinguido de Q: estado inicial • F é um subconjunto de Q: conjunto de estados finaisLinguagens Formais e Autômatos - P. Blauth Menezes 55
  56. 56. ◆ Autômato como diagrama δ(p, a) = { q1, q2, …, qn } estado anterior p a a a símbolo lido conjunto de q1 q2 qn novos estadosLinguagens Formais e Autômatos - P. Blauth Menezes 56
  57. 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 palavraLinguagens Formais e Autômatos - P. Blauth Menezes 57
  58. 58. Def: Função Programa Estendida, ComputaçãoM = (Σ, Q, δ, q0, F) autômato finito não-determinístico δ*: 2Q × Σ* → 2Qindutivamente 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 58
  59. 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 59
  60. 60. Def: Linguagem Aceita, Linguagem RejeitadaSeja M = (Σ, Q, δ, q0, F) um autômato finito não-determinísticoLinguagem Aceita ou Linguagem Reconhecida por M L(M) = ACEITA(M) = { w  δ*({ q0 }, w) ∩ F ≠ ∅ }Linguagem Rejeitada por MREJEITA(M) = { w  δ*({ q0 }, w) ∩ F = ∅ ou δ*({ q0 }, w) é indefinida }Linguagens Formais e Autômatos - P. Blauth Menezes 60
  61. 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 a,b a b q1 q2 a b qf a,bLinguagens Formais e Autômatos - P. Blauth Menezes 61
  62. 62. q0 a,b a b q1 q2 a b qf a,bLinguagens Formais e Autômatos - P. Blauth Menezes 62
  63. 63. q0 a,b a b q1 q2 a b qf 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 bbLinguagens Formais e Autômatos - P. Blauth Menezes 63
  64. 64. q0 a,b a b q1 q2 a b qf a,b δ5 a b q 0 { q0,q1 } { q0,q2 } q 1 { qf } - q2 - { qf } qf { qf } { qf }Linguagens Formais e Autômatos - P. Blauth Menezes 64
  65. 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 }) a a a q0 q1 q2 qf a,bLinguagens Formais e Autômatos - P. Blauth Menezes 65
  66. 66. ◆ Não-determinismo • aparentemente, um significativo acréscimo ao poder computacional autômato finito • na realidade não aumenta seu poder computacionalTeorema: Equivalência entre AFD e AFNClasse dos Autômatos Finitos Determinísticos é equivalente àClasse dos Autômatos Finitos Não-DeterminísticosLinguagens Formais e Autômatos - P. Blauth Menezes 66
  67. 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 MAFN → AFD • estados de MD simulam combinações de estados alternativos de M • prova da simulação: por induçãoAFD → AFN • não necessita ser mostrado: decorre trivialmente das definiçõesLinguagens Formais e Autômatos - P. Blauth Menezes 67
  68. 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 〈q1q 2…qn〉 ∗ ordem não distingue combinações: 〈quq v 〉 = 〈qv q u〉 ∗ 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 〈q1q 2…qn〉 pertencentes a QD ∗ alguma componente qi pertence a F, para i em { 1, 2, …, n }Linguagens Formais e Autômatos - P. Blauth Menezes 68
  69. 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çãoLinguagens Formais e Autômatos - P. Blauth Menezes 69
  70. 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 δDLogo, MD simula M para qualquer entrada w pertencente a Σ*Linguagens Formais e Autômatos - P. Blauth Menezes 70
  71. 71. ◆ Portanto, linguagem aceita por AFN • é Linguagem Regular ou Tipo 3Obs: Determinismo × Não-DeterminismoMuitas 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 estadosAlternativa para construir um AFD • desenvolver inicialmente AFN • aplicar o algoritmo apresentado na prova do teoremaLinguagens Formais e Autômatos - P. Blauth Menezes 71
  72. 72. Exp: AFN → AFD M6 = ({ a, b }, { q0, q1, q2, qf }, δ6, q0, { qf }) a a a q0 q1 q2 qf a,b M6D = ({ a, b }, QD, δ6D, 〈q0〉, FD) • QD = { 〈q0〉, 〈q1〉, 〈q2〉, 〈qf〉, 〈q0q 1〉, 〈q0q 2〉, …, 〈q0q 1q 2q f〉 } • FD = { 〈qf〉, 〈q0q f〉, 〈q1q f〉, …, 〈q0q 1q 2q f〉 }Linguagens Formais e Autômatos - P. Blauth Menezes 72
  73. 73. AFN a a a q0 q1 q2 qf a,bAFD δ6D a b 〈q0〉 〈q0q 1〉 〈q0〉 〈q0q 1〉 〈q0q 1q 2〉 〈q0〉 〈q0q 1q 2〉 〈q0q 1q 2q f〉 〈q0〉 〈q0q 1q 2q f〉 〈q0q 1q 2q f〉 〈q0〉Linguagens Formais e Autômatos - P. Blauth Menezes 73
  74. 74. δ6D a b p 0 = 〈q0〉 〈q0q 1〉 〈q0〉 p 1 = 〈q0q 1〉 〈q0q 1q 2〉 〈q0〉 p 2 = 〈q0q 1q 2〉 〈q0q 1q 2q f〉 〈q0〉 p f = 〈q0q 1q 2q f〉 〈q0q 1q 2q f〉 〈q0〉 b b b a a a p0 p1 p2 pf b aLinguagens Formais e Autômatos - P. Blauth Menezes 74
  75. 75. 3 – Linguagens Regulares 3.1 Sistema de Estados Finitos 3.2 Composição Seqüencial, Concorrente e Não-Determinista 3.3 Autômato Finito 3.4 Autômato Finito Não-Determinístico 3.5 Autômato Finito com Movimentos Vazios 3.6 Expressão Regular 3.7 Gramática RegularLinguagens Formais e Autômatos - P. Blauth Menezes 75
  76. 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 observadoLinguagens Formais e Autômatos - P. Blauth Menezes 76
  77. 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 AFDLinguagens Formais e Autômatos - P. Blauth Menezes 77
  78. 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 × (Σ ∪ { ε }) → 2Q ∗ movimento vazio ou transição vazia δ(p, ε) = { q1, q2, …, qn } • q 0 - elemento distinguido de Q: estado inicial • F - subconjunto de Q: conjunto de estados finaisLinguagens Formais e Autômatos - P. Blauth Menezes 78
  79. 79. ◆ Autômato como diagrama δ(q, ε) = { p0 } δ(q, a1) = { p1 } … δ(q, an) = { pn } q ε an a1 p0 p1 pnLinguagens Formais e Autômatos - P. Blauth Menezes 79
  80. 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 alternativoLinguagens Formais e Autômatos - P. Blauth Menezes 80
  81. 81. Exp: AFNε: a’s antecedem b’s M7 = ({ a, b }, { q0, qf }, δ7, q0, { qf }) δ7 a b ε q 0 { q0 } - { qf } qf - { qf } ε q0 qf a bLinguagens Formais e Autômatos - P. Blauth Menezes 81
  82. 82. ◆ Antes de definir computação • computação de transições vazias a partir de ∗ um estado ∗ um conjunto finito de estadosLinguagens Formais e Autômatos - P. Blauth Menezes 82
  83. 83. Def: Computação VaziaM = (Σ, Q, δ, q0, F)Computação Vazia ou Função Fecho Vazio (um estado) δε: Q → 2Q • indutivamente definida ∗ δε(q) = { q }, se δ(q, ε) é indefinida ∗ δε(q) = { q } ∪ δ(q, ε) ∪ (∪p∈δ(q,ε) δε(p)), caso contrárioComputação Vazia ou Função Fecho Vazio (conjunto de estados) δε*: 2Q → 2Q • tal que δε*(P) = ∪q∈P δε(q)Linguagens Formais e Autômatos - P. Blauth Menezes 83
  84. 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 84
  85. 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 vaziosLinguagens Formais e Autômatos - P. Blauth Menezes 85
  86. 86. Def: Função Programa Estendida, ComputaçãoM = (Σ, Q, δ, q0, F) AFNε δ*: 2Q × Σ* → 2Qindutivamente 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ísticoLinguagens Formais e Autômatos - P. Blauth Menezes 86
  87. 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 }) a q1 ε ε b b q0 q2 q3 qf ε c a,b,c c c q4 q5 q6Linguagens Formais e Autômatos - P. Blauth Menezes 87
  88. 88. a q1 ε ε b b q0 q2 q3 qf ε c a,b,c c c q4 q5 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 88
  89. 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ísticosProva: (por indução)Mostrar que • a partir de um AFNε M qualquer • construir um AFN MN que realiza as mesmas computações • MN simula MAFNε → 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 vaziasLinguagens Formais e Autômatos - P. Blauth Menezes 89
  90. 90. M = (Σ, Q, δ, q0, F) um AFNε qualquer. AFN construído MN = (Σ, Q, δN, q0, FN) • δN: Q × Σ → 2Q é 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 vaziasDemonstração que, de fato, o AFN MN simula o AFNε M • indução no tamanho da palavra • exercícioLinguagens Formais e Autômatos - P. Blauth Menezes 90
  91. 91. ◆ Portanto, linguagem aceita por AFNε • é Linguagem Regular ou Tipo 3Linguagens Formais e Autômatos - P. Blauth Menezes 91
  92. 92. Exp: Construção de um AFN a partir de um AFNεAFNε - M9 = ({ a, b }, { q0, q1, q2 }, δ9, q0, { q2 }) δ9 a b ε q 0 { q0 } - { q1 } q1 -{ q1 } { q2 } q 2 { q2 } - - ε ε q0 q1 q2 a b aLinguagens Formais e Autômatos - P. Blauth Menezes 92
  93. 93. ε ε q0 q1 q2 a b aM9N = ({ a, b }, { q0, q1, q2 }, δ9N q0, FN) a,b a,b a,b q0 q1 q2 a b aLinguagens Formais e Autômatos - P. Blauth Menezes 93
  94. 94. ε ε q0 q1 q2 a b aFN = { q0, q1, q2 } • δε(q0) = { q0, q1, q2 } • δε(q1) = { q1, q2 } • δε(q2) = { q2 }Linguagens Formais e Autômatos - P. Blauth Menezes 94
  95. 95. ε ε q0 q1 q2 a b aNa construção de δ9N • δ9*({ q0 }, ε) = { q0, q1, q2 } • δ9*({ q1 }, ε) = { q1, q2 } • δ9*({ q2 }, ε) = { q2 }Linguagens Formais e Autômatos - P. Blauth Menezes 95
  96. 96. ε ε q0 q1 q2 a b aAssim, δ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 96
  97. 97. ε ε q0 q1 q2 a b 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 }, ε) }) é indefinidaLinguagens Formais e Autômatos - P. Blauth Menezes 97
  98. 98. 3 – Linguagens Regulares 3.1 Sistema de Estados Finitos 3.2 Composição Seqüencial, Concorrente e Não-Determinista 3.3 Autômato Finito 3.4 Autômato Finito Não-Determinístico 3.5 Autômato Finito com Movimentos Vazios 3.6 Expressão Regular 3.7 Gramática RegularLinguagens Formais e Autômatos - P. Blauth Menezes 98
  99. 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áquinaLinguagens Formais e Autômatos - P. Blauth Menezes 99
  100. 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 100
  101. 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 101
  102. 102. Def: Linguagem Gerada por uma ERSe 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ãoLinguagens Formais e Autômatos - P. Blauth Menezes 102
  103. 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 103
  104. 104. Exp: …Expressão Regular ER Linguagem Geradaaa somente a palavra aaba* 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 subpalavraa*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 consecutivosLinguagens Formais e Autômatos - P. Blauth Menezes 104
  105. 105. Exp: …Expressão RegularLinguagem 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 105
  106. 106. Teorema: Expressão Regular → Linguagem RegularSe r é ER, então GERA(r) é linguagem regularProva: (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 operadoresLinguagens Formais e Autômatos - P. Blauth Menezes 106
  107. 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 107
  108. 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 q0 qfLinguagens Formais e Autômatos - P. Blauth Menezes 108
  109. 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 109
  110. 110. r = r1 + r2 • Autômato???r = r1r2 • Autômato???r = r1* • Autômato???Linguagens Formais e Autômatos - P. Blauth Menezes 110
  111. 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 }) ε M1 ε q01 qf1 q0 qf ε M2 ε q02 qf2Linguagens Formais e Autômatos - P. Blauth Menezes 111
  112. 112. r = r1r2. Autômato M = (Σ1 ∪ Σ2, Q1 ∪ Q2, δ, q01, { qf2 }) M1 ε M2 q01 qf1 q02 qf2r = r1*. Autômato (suponha q0 ∉ Q1, qf ∉ Q1) • M = (Σ1, Q1 ∪ { q0, qf }, δ, q0, { qf }) ε ε M1 ε q0 q01 qf1 qf εLinguagens Formais e Autômatos - P. Blauth Menezes 112
  113. 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 ??? ε M1 ε q01 qf1 q0 qf ε M2 ε q02 qf2Linguagens Formais e Autômatos - P. Blauth Menezes 113
  114. 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 ??? ε ε M1 ε q0 q01 qf1 qf εLinguagens Formais e Autômatos - P. Blauth Menezes 114
  115. 115. Exp: AFNε a partir de a*(aa + bb) ER AFNε a a b b a* ε ε a ε ε aa a ε aLinguagens Formais e Autômatos - P. Blauth Menezes 115
  116. 116. ER AFNε bb b ε b (aa + bb) a ε a ε ε ε ε b ε bLinguagens Formais e Autômatos - P. Blauth Menezes 116
  117. 117. • Autômato resultante: a*(aa + bb) a ε a ε ε ε ε a ε ε ε ε ε b ε bLinguagens Formais e Autômatos - P. Blauth Menezes 117
  118. 118. Teorema: Linguagem Regular → Expressão RegularSe L é linguagem regular, então existe uma ER r tal que GERA(r) = LO teorema não será provadoLinguagens Formais e Autômatos - P. Blauth Menezes 118
  119. 119. 3 – Linguagens Regulares 3.1 Sistema de Estados Finitos 3.2 Composição Seqüencial, Concorrente e Não-Determinista 3.3 Autômato Finito 3.4 Autômato Finito Não-Determinístico 3.5 Autômato Finito com Movimentos Vazios 3.6 Expressão Regular 3.7 Gramática RegularLinguagens Formais e Autômatos - P. Blauth Menezes 119
  120. 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 LinearesLinguagens Formais e Autômatos - P. Blauth Menezes 120
  121. 121. Def: Gramáticas Lineares G = (V, T, P, S)Gramática Linear à Direita (GLD) A → wB ou A→wGramática Linear à Esquerda (GLE) A → Bw ou A→wGramática Linear Unitária à Direita (GLUD) • como na gramática linear à direita. Adicionalmente w≤1Gramática Linear Unitária à Esquerda (GLUE) • como na gramática linear à esquerda. Adicionalmente w≤1Linguagens Formais e Autômatos - P. Blauth Menezes 121
  122. 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 122
  123. 123. Teorema: Equivalência das Gramáticas LinearesSeja 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ícioDef: Gramática Regular (GR)G é uma gramática linearLinguagens Formais e Autômatos - P. Blauth Menezes 123
  124. 124. Def: Linguagem GeradaG = (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 124
  125. 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  aLinear Unitária à Direita. G = ({ S, A, B }, { a, b }, P, S) • S → aA • A → bB  ε • B → aALinear Unitária à Esquerda. G = ({ S, A }, { a, b }, P, S) • S → Aa  a • A → SbLinguagens Formais e Autômatos - P. Blauth Menezes 125
  126. 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  bbLinear à 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 126
  127. 127. Obs: Gramática Linear à Esquerda e Linear à DireitaSuponha  w  ≥ 1Produçõ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 à direitae à esquerda, que gera (exercício) { anbn  n ∈ N }Linguagens Formais e Autômatos - P. Blauth Menezes 127
  128. 128. Teorema: Gramática Regular → Linguagem RegularSe L é gerada por uma gramática regular,então L é linguagem regularProva: (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çõesLinguagens Formais e Autômatos - P. Blauth Menezes 128
  129. 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ção Transição Gerada A→ε δ(A, ε) = qf A→a δ(A, a) = qf A→B δ(A, ε) = B A → aB δ(A, a) = BLinguagens Formais e Autômatos - P. Blauth Menezes 129
  130. 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) = AHipó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 130
  131. 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) = BLinguagens Formais e Autômatos - P. Blauth Menezes 131
  132. 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 }) a ε S A qf b a BLinguagens Formais e Autômatos - P. Blauth Menezes 132
  133. 133. Produção Transição S → aA δ(S, a) = A A → bB δ(A, b) = B A→ε δ(A, ε) = qf B → aA δ(B, a) = A a ε S A qf b a BLinguagens Formais e Autômatos - P. Blauth Menezes 133
  134. 134. Teorema: Linguagem Regular → Gramática RegularSe L é linguagem regular, então existe G, gramática regular que gera LProva: (por indução)L é linguagem regular • existe um AFD M = (Σ, Q, δ, q0, F) tal que ACEITA(M) = LConstruição de uma GLUD G GERA(G) = ACEITA(M) • derivação simula a função programa estendidaLinguagens Formais e Autômatos - P. Blauth Menezes 134
  135. 135. Suponha um AFD M = (Σ, Q, δ, q0, F) tal que ACEITA(M) = LSeja 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ção Produção - S → q0 - qf → ε δ(qi, a) = qk q i → aqkLinguagens Formais e Autômatos - P. Blauth Menezes 135
  136. 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 ∗ q 0 é estado final ∗ q 0 → ε é 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 ⇒ wLinguagens Formais e Autômatos - P. Blauth Menezes 136
  137. 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 waLinguagens Formais e Autômatos - P. Blauth Menezes 137
  138. 138. Exp: Construção de uma GR a partir de um AFDM = ({ a, b, c }, { q0, q1, q2 }, δ, q0, { q0, q1, q2 }) b c q0 q1 q2 a b cG = ({ q0, q1, q2, S }, { a, b, c }, P, S)Linguagens Formais e Autômatos - P. Blauth Menezes 138
  139. 139. Transição Produção - S → q0 - q0 → ε - q1 → ε - q2 → ε δ(q0, a) = q0 q 0 → aq0 δ(q0, b) = q1 q 0 → bq1 δ(q1, b) = q1 q 1 → bq1 δ(q1, c) = q2 q 1 → cq2 δ(q2, c) = q2 q 2 → cq2 b c q0 q1 q2 a b cLinguagens Formais e Autômatos - P. Blauth Menezes 139
  140. 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õesLinguagens Formais e Autômatos - P. Blauth Menezes 140

×