Linguagens Formais e                        Autômatos                                             P. Blauth Menezes       ...
Linguagens Formais e Autômatos                                                     P. Blauth Menezes                      ...
2 – Linguagens e Gramáticas     2.1        Alfabeto     2.2        Palavra     2.3        Linguagem Formal     2.4        ...
2 Linguagens e Gramáticas◆    Linguagem: Dicionário Aurélio                       o uso da palavra articulada ou escrita c...
◆    Linguagem     • conceito fundamental em Computação e Informática◆    Para definir linguagem     • alfabeto     • pala...
2 – Linguagens e Gramáticas     2.1        Alfabeto     2.2        Palavra     2.3        Linguagem Formal     2.4        ...
2.1 Alfabeto◆    Símbolo ou Caractere     • entidade abstrata básica, não definida formalmente     • base para definições ...
Exp: AlfabetoSão alfabetos     • { a, b, c }     • ∅ (conjunto vazio)Não são alfabetos (por quê?)     • N (conjunto dos nú...
Exp: Alfabeto: Linguagem de ProgramaçãoAlfabeto de uma linguagem de programação como Pascal     • o conjunto de todos os s...
2 – Linguagens e Gramáticas     2.1        Alfabeto     2.2        Palavra     2.3        Linguagem Formal     2.4        ...
2.2 PalavraDef: Palavra, Cadeia de Caracteres, SentençaSobre um alfabeto     • seqüência finita de símbolos justapostos◆  ...
Def: Prefixo, Sufixo, SubpalavraPrefixo (Sufixo)   • qualquer seqüência inicial (final) de símbolos da palavraSubpalavra  ...
Exp: Palavra: Linguagem de ProgramaçãoEm uma linguagem de programação como Pascal                                         ...
Def: Concatenação de PalavrasConcatenação de Palavras ou simplesmente Concatenação  • operação binária sobre um conjunto d...
Exp: Concatenação de PalavrasΣ = { a, b } um alfabeto. Para v = baaaa e w = bb     • v w = baaaabb     • v ε = v = baaaaDe...
Exp: Concatenação Sucessivaw palavra e a símbolo     • w3 = w w w     • w1 = w     • a5 = aaaaa     • an = aaa…a          ...
◆    Se Σ é um alfabeto     • Σ* conjunto de todas as palavras possíveis sobre Σ     • Σ+ = Σ* - { ε }Def: Conjunto de Tod...
◆    Definição alternativa para palavra sobre um alfabeto Σ     • qualquer elemento w de Σ*                               ...
Def: Comprimento, Tamanho de uma PalavraDe uma palavra w, representado por w     • número de símbolos que compõem a pala...
2 – Linguagens e Gramáticas     2.1        Alfabeto     2.2        Palavra     2.3        Linguagem Formal     2.4        ...
2.3 Linguagem FormalDef: Linguagem FormalLinguagem Formal ou simplesmente Linguagem L sobre um alfabeto Σ                 ...
Exp: Conjunto de Todas as Linguagens Sobre um     AlfabetoConjunto das partes de Σ*                                       ...
2 – Linguagens e Gramáticas     2.1        Alfabeto     2.2        Palavra     2.3        Linguagem Formal     2.4        ...
2.4 Gramática◆    Linguagem de programação     • definida pelo conjunto de todos os programas (palavras)◆    Linguagem de ...
◆    Gramática é, basicamente     • conjunto finito de regras     • quando aplicadas sucessivamente, geram palavras     • ...
Def: GramáticaGramática de Chomsky, Gramática Irrestrita ou Gramática                                                     ...
◆    Derivação     • aplicação de uma regra de produção é denominada derivação     • aplicação sucessiva de regras de prod...
Def: Relação de DerivaçãoG = (V, T, P, S) gramáticaDerivação é um par da Relação de Derivação denotada por ⇒  • domínio em...
◆    Portanto, derivação     • substituição de uma subpalavra     • de acordo com uma regra de produção◆    Sucessivos pas...
◆    Gramática é um formalismo     • aximático     • de geração        ∗ permite derivar ("gerar") todas as palavras da li...
Exp: Gramática, Derivação, Linguagem Gerada:     Números NaturaisG = (V, T, P, N)     • V = { N, D }     • T = { 0, 1, 2,…...
Exp: …Gramática, Derivação, Linguagem Gerada:     Números NaturaisG = (V, T, P, N)   • V = { N, D }   • T = { 0, 1, 2,…, 9...
Portanto     • S ⇒* 243     • S ⇒+ 243     • S ⇒6 243Interpretação indutiva da gramática     • Base de Indução: todo dígit...
Exp: Gramática, Derivação, Linguagem Gerada: Palavra     Duplicada                                  G = ({ S, X, Y, A, B, ...
Derivação de baba     •   S⇒                                            S → XY     •   XY ⇒                               ...
Def: Gramáticas EquivalentesG1 e G2 são Gramáticas Equivalentes se e somente se                                           ...
Linguagens Formais e Autômatos                                                     P. Blauth Menezes                      ...
Próximos SlideShares
Carregando em…5
×

02 linguagens e gramaticas

861 visualizações

Publicada em

0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
861
No SlideShare
0
A partir de incorporações
0
Número de incorporações
40
Ações
Compartilhamentos
0
Downloads
52
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

02 linguagens e gramaticas

  1. 1. Linguagens Formais e Autômatos P. Blauth Menezes blauth@inf.ufrgs.br Departamento de Informática Teórica Instituto de Informática / UFRGSMatemática Discreta para Ciência da Computação - 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. 2 – Linguagens e Gramáticas 2.1 Alfabeto 2.2 Palavra 2.3 Linguagem Formal 2.4 GramáticaLinguagens Formais e Autômatos - P. Blauth Menezes 3
  4. 4. 2 Linguagens e Gramáticas◆ Linguagem: Dicionário Aurélio o uso da palavra articulada ou escrita como meio de expressão e comunicação entre pessoas◆ Não é suficientemente precisa para • desenvolvimento matemático de uma teoria baseada em linguagensLinguagens Formais e Autômatos - P. Blauth Menezes 4
  5. 5. ◆ Linguagem • conceito fundamental em Computação e Informática◆ Para definir linguagem • alfabeto • palavra ou cadeia de caracteresLinguagens Formais e Autômatos - P. Blauth Menezes 5
  6. 6. 2 – Linguagens e Gramáticas 2.1 Alfabeto 2.2 Palavra 2.3 Linguagem Formal 2.4 GramáticaLinguagens Formais e Autômatos - P. Blauth Menezes 6
  7. 7. 2.1 Alfabeto◆ Símbolo ou Caractere • entidade abstrata básica, não definida formalmente • base para definições • exemplos: letras e dígitosDef: AlfabetoConjunto finito de símbolos ou caracteres◆ Portanto • conjunto infinito não é alfabeto • ∅ é um alfabetoLinguagens Formais e Autômatos - P. Blauth Menezes 7
  8. 8. Exp: AlfabetoSão alfabetos • { a, b, c } • ∅ (conjunto vazio)Não são alfabetos (por quê?) • N (conjunto dos números naturais) • { a, b, aa, ab, ba, bb, aaa,… }Linguagens Formais e Autômatos - P. Blauth Menezes 8
  9. 9. Exp: Alfabeto: Linguagem de ProgramaçãoAlfabeto de uma linguagem de programação como Pascal • o conjunto de todos os símbolos usados nos programas ∗ letras ∗ dígitos ∗ caracteres especiais como “>”, “/”, etc ∗ espaço ou “branco”◆ Alfabeto binário { a, b } • domínio de valores de um bit • analogia com a representação interna dos computadores reais • poucos símbolos: simplifica as diversas abordagens desenvolvidas.Linguagens Formais e Autômatos - P. Blauth Menezes 9
  10. 10. 2 – Linguagens e Gramáticas 2.1 Alfabeto 2.2 Palavra 2.3 Linguagem Formal 2.4 GramáticaLinguagens Formais e Autômatos - P. Blauth Menezes 10
  11. 11. 2.2 PalavraDef: Palavra, Cadeia de Caracteres, SentençaSobre um alfabeto • seqüência finita de símbolos justapostos◆ Cadeia sem símbolos ε - cadeia vazia ou palavra vaziaLinguagens Formais e Autômatos - P. Blauth Menezes 11
  12. 12. Def: Prefixo, Sufixo, SubpalavraPrefixo (Sufixo) • qualquer seqüência inicial (final) de símbolos da palavraSubpalavra • qualquer seqüência de símbolos contíguos da palavraExp: Palavra, Prefixo, Sufixo, Subpalavraabcb palavra sobre o alfabeto { a, b, c } • ε, a, ab, abc, abcb são todos os prefixos • ε, b, cb, bcb, abcb são todos os sufixos • qualquer prefixo ou sufixo é uma subpalavraLinguagens Formais e Autômatos - P. Blauth Menezes 12
  13. 13. Exp: Palavra: Linguagem de ProgramaçãoEm uma linguagem de programação como Pascal uma palavra é um programaLinguagens Formais e Autômatos - P. Blauth Menezes 13
  14. 14. Def: Concatenação de PalavrasConcatenação de Palavras ou simplesmente Concatenação • operação binária sobre um conjunto de palavras • associa a cada par de palavras ∗ palavra formada pela justaposição da primeira com a segundaNotação • justaposição dos símbolos que representam as palavras componentesPropriedades • Elemento Neutro: ε w = w = w ε • Associativa: v(w t) = (v w)tAssociatividade - parênteses podem ser omitidos: v w tLinguagens Formais e Autômatos - P. Blauth Menezes 14
  15. 15. Exp: Concatenação de PalavrasΣ = { a, b } um alfabeto. Para v = baaaa e w = bb • v w = baaaabb • v ε = v = baaaaDef: Concatenação Sucessiva de uma PalavraConcatenação Sucessiva de uma Palavra (com ela mesma) ousimplesmente Concatenação Sucessiva wn onde n é o número de concatenações sucessivasindutivamente a partir da operação de concatenação • w0 = ε • wn = w wn-1, para n > 0Linguagens Formais e Autômatos - P. Blauth Menezes 15
  16. 16. Exp: Concatenação Sucessivaw palavra e a símbolo • w3 = w w w • w1 = w • a5 = aaaaa • an = aaa…a (o símbolo a repetido n vezes)Linguagens Formais e Autômatos - P. Blauth Menezes 16
  17. 17. ◆ Se Σ é um alfabeto • Σ* conjunto de todas as palavras possíveis sobre Σ • Σ+ = Σ* - { ε }Def: Conjunto de Todas as PalavrasΣ alfabeto. Σ* é indutivamente definidoBase de Indução • ε ∈ Σ* • para qualquer x ∈ Σ, vale x ∈ Σ*Passo de Indução • Se u e v são palavras de Σ*, • então a concatenação u v é uma palavra de Σ*Linguagens Formais e Autômatos - P. Blauth Menezes 17
  18. 18. ◆ Definição alternativa para palavra sobre um alfabeto Σ • qualquer elemento w de Σ* w ∈ Σ*Exp: Conjunto de Todas as PalavrasSe Σ = { a, b }, então: • Σ+ = { a, b, aa, ab, ba, bb, aaa,… } • Σ* = { ε, a, b, aa, ab, ba, bb, aaa,… }Linguagens Formais e Autômatos - P. Blauth Menezes 18
  19. 19. Def: Comprimento, Tamanho de uma PalavraDe uma palavra w, representado por w • número de símbolos que compõem a palavra • função com domínio em Σ* e codomínio em NExp: Palavra, Prefixo, Sufixo, Comprimentoabcb = 4ε = 0Linguagens Formais e Autômatos - P. Blauth Menezes 19
  20. 20. 2 – Linguagens e Gramáticas 2.1 Alfabeto 2.2 Palavra 2.3 Linguagem Formal 2.4 GramáticaLinguagens Formais e Autômatos - P. Blauth Menezes 20
  21. 21. 2.3 Linguagem FormalDef: Linguagem FormalLinguagem Formal ou simplesmente Linguagem L sobre um alfabeto Σ L ⊆ Σ*Exp: Linguagem Formal∅ e { ε } são linguagens sobre qualquer alfabeto ∅ ≠ {ε }Σ* e Σ+ são linguagens sobre um Σ qualquer Σ* ≠ Σ+Conjunto de palíndromos sobre Σ = { a, b } ε, a, b, aa, bb, aaa, aba, bab, bbb, aaaa,…Linguagens Formais e Autômatos - P. Blauth Menezes 21
  22. 22. Exp: Conjunto de Todas as Linguagens Sobre um AlfabetoConjunto das partes de Σ* 2Σ*Exp: Linguagem Formal: Linguagem de ProgramaçãoLinguagem de programação como Pascal conjunto de todos os programas (palavras) da linguagemLinguagens Formais e Autômatos - P. Blauth Menezes 22
  23. 23. 2 – Linguagens e Gramáticas 2.1 Alfabeto 2.2 Palavra 2.3 Linguagem Formal 2.4 GramáticaLinguagens Formais e Autômatos - P. Blauth Menezes 23
  24. 24. 2.4 Gramática◆ Linguagem de programação • definida pelo conjunto de todos os programas (palavras)◆ Linguagem de propósitos gerais como Pascal • conjunto de todos os programas é infinito • não é definição adequada para implementação em computador◆ Formalismo Gramática • uma maneira de especificar de forma finita linguagens (eventualmente) infinitasLinguagens Formais e Autômatos - P. Blauth Menezes 24
  25. 25. ◆ Gramática é, basicamente • conjunto finito de regras • quando aplicadas sucessivamente, geram palavras • conjunto de todas as palavras geradas por uma gramática ∗ define a linguagem◆ Gramáticas para linguagens naturais como Português • as mesmas que as usadas para linguagens artificiais como Pascal◆ Gramáticas também são usadas para definir semântica • entretanto, em geral, são usados outros formalismosLinguagens Formais e Autômatos - P. Blauth Menezes 25
  26. 26. Def: GramáticaGramática de Chomsky, Gramática Irrestrita ou Gramática G = (V, T, P, S) • V, conjunto finito de símbolos variáveis ou não-terminais • T, conjunto finito de símbolos terminais disjunto de V • P: (V ∪ T)+ → (V ∪ T)*, relação finita: Produções ∗ par da relação: regra de produção ou produção • S, elemento distinguido de V: símbolo inicial ou variável inicialRepresentação de uma regra de produção (α, β) α→βRepresentação abreviada para α → β1, α → β2, ..., α → βn α → β1  β2  …  βnLinguagens Formais e Autômatos - P. Blauth Menezes 26
  27. 27. ◆ Derivação • aplicação de uma regra de produção é denominada derivação • aplicação sucessiva de regras de produção ∗ fecho transitivo da relação de derivação ∗ permite derivar palavras da linguagemLinguagens Formais e Autômatos - P. Blauth Menezes 27
  28. 28. Def: Relação de DerivaçãoG = (V, T, P, S) gramáticaDerivação é um par da Relação de Derivação denotada por ⇒ • domínio em (V ∪ T)+ e codomínio em (V ∪ T)* • 〈α, β〉 é representado de forma infixada α⇒β⇒ é indutivamente definida como segue: • para toda produção da forma S → β (S é o símbolo inicial de G) S⇒β • para todo par η ⇒ ρ α σ da relação de derivação ∗ se α → β é regra de P, então η⇒ρβσLinguagens Formais e Autômatos - P. Blauth Menezes 28
  29. 29. ◆ Portanto, derivação • substituição de uma subpalavra • de acordo com uma regra de produção◆ Sucessivos passos de derivação • ⇒* fecho transitivo e reflexivo da relação ⇒ ∗ zero ou mais passos de derivações sucessivos • ⇒+ fecho transitivo da relação ⇒ ∗ um ou mais passos de derivações sucessivos • ⇒I ∗ exatos i passos de derivações sucessivos (i natural)Linguagens Formais e Autômatos - P. Blauth Menezes 29
  30. 30. ◆ Gramática é um formalismo • aximático • de geração ∗ permite derivar ("gerar") todas as palavras da linguagemDef: Linguagem GeradaG = (V, T, P, S) gramáticaLinguagem Gerada por G: L(G) ou GERA(G) • palavras de símbolos terminais deriváveis a partir de S L(G) = { w ∈ T*  S ⇒+ w }Linguagens Formais e Autômatos - P. Blauth Menezes 30
  31. 31. Exp: Gramática, Derivação, Linguagem Gerada: Números NaturaisG = (V, T, P, N) • V = { N, D } • T = { 0, 1, 2,…, 9 } • P = { N → D, N → DN, D → 0  1  …  9 }Gera, sintaticamente, o conjunto dos números naturais • se distinguem os zeros à esquerda • exemplo: 123 de 0123Linguagens Formais e Autômatos - P. Blauth Menezes 31
  32. 32. Exp: …Gramática, Derivação, Linguagem Gerada: Números NaturaisG = (V, T, P, N) • V = { N, D } • T = { 0, 1, 2,…, 9 } • P = { N → D, N → DN, D → 0  1  …  9 }Uma derivação do número 243 • N⇒ N → DN • DN ⇒ D→2 • 2N ⇒ N → DN • 2DN ⇒ D→4 • 24N ⇒ N→D • 24D ⇒ D→3 • 243Linguagens Formais e Autômatos - P. Blauth Menezes 32
  33. 33. Portanto • S ⇒* 243 • S ⇒+ 243 • S ⇒6 243Interpretação indutiva da gramática • Base de Indução: todo dígito é natural • Passo de Indução: se n é natural, então a concatenação com qualquer dígito também é naturalLinguagens Formais e Autômatos - P. Blauth Menezes 33
  34. 34. Exp: Gramática, Derivação, Linguagem Gerada: Palavra Duplicada G = ({ S, X, Y, A, B, F }, { a, b }, P, S)na qual: • P = { S → XY, • X → XaA  XbB  F • Aa → aA, Ab → bA, AY → Ya, • Ba → aB, Bb → bB, BY → Yb, • Fa → aF, Fb → bF, FY → ε }gera a linguagem { ww  w é palavra de { a, b }* }Linguagens Formais e Autômatos - P. Blauth Menezes 34
  35. 35. Derivação de baba • S⇒ S → XY • XY ⇒ X → XaA • XaAY ⇒ AY → Ya • XaYa ⇒ X → XbB • XbBaYa ⇒ Ba → aB • XbaBYa ⇒ BY → Yb • XbaYba ⇒ X→F • FbaYba ⇒ Fb → bF • bFaYba ⇒ Fa → aF • baFYba ⇒ FY → ε • babaExiste mais alguma derivação de baba?Linguagens Formais e Autômatos - P. Blauth Menezes 35
  36. 36. Def: Gramáticas EquivalentesG1 e G2 são Gramáticas Equivalentes se e somente se GERA(G1) = GERA(G2)◆ Convenções • A, B, C,…, S, T para símbolos variáveis • a, b, c,…, s, t para símbolos terminais • u, v, w, x, y, z para palavras de símbolos terminais • α, β,… para palavras de símbolos variáveis ou terminaisLinguagens Formais e Autômatos - P. Blauth Menezes 36
  37. 37. 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 37

×