SlideShare uma empresa Scribd logo
1 de 37
Baixar para ler offline
Linguagens Formais e
                        Autômatos
                                             P. Blauth Menezes
                                                   blauth@inf.ufrgs.br

                    Departamento de Informática Teórica
                      Instituto de Informática / UFRGS




Matemática Discreta para Ciência da Computação - P. Blauth Menezes       1
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                              2
2 – Linguagens e Gramáticas

     2.1        Alfabeto
     2.2        Palavra
     2.3        Linguagem Formal
     2.4        Gramática




Linguagens Formais e Autômatos - P. Blauth Menezes   3
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
       linguagens




Linguagens Formais e Autômatos - P. Blauth Menezes                   4
◆    Linguagem
     • conceito fundamental em Computação e Informática


◆    Para definir linguagem
     • alfabeto

     • palavra ou cadeia de caracteres




Linguagens Formais e Autômatos - P. Blauth Menezes        5
2 – Linguagens e Gramáticas

     2.1        Alfabeto
     2.2        Palavra
     2.3        Linguagem Formal
     2.4        Gramática




Linguagens Formais e Autômatos - P. Blauth Menezes   6
2.1 Alfabeto
◆    Símbolo ou Caractere
     • entidade abstrata básica, não definida formalmente
     • base para definições
     • exemplos: letras e dígitos


Def: Alfabeto
Conjunto finito de símbolos ou caracteres

◆    Portanto
     • conjunto infinito não é alfabeto
     • ∅ é um alfabeto

Linguagens Formais e Autômatos - P. Blauth Menezes          7
Exp: Alfabeto
Sã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
Exp: Alfabeto: Linguagem de Programação
Alfabeto 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
2 – Linguagens e Gramáticas

     2.1        Alfabeto
     2.2        Palavra
     2.3        Linguagem Formal
     2.4        Gramática




Linguagens Formais e Autômatos - P. Blauth Menezes   10
2.2 Palavra

Def: Palavra, Cadeia de Caracteres, Sentença
Sobre um alfabeto

     • seqüência finita de símbolos justapostos



◆    Cadeia sem símbolos
                                     ε - cadeia vazia ou palavra vazia




Linguagens Formais e Autômatos - P. Blauth Menezes                       11
Def: Prefixo, Sufixo, Subpalavra
Prefixo (Sufixo)
   • qualquer seqüência inicial (final) de símbolos da palavra

Subpalavra
  • qualquer seqüência de símbolos contíguos da palavra


Exp: Palavra, Prefixo, Sufixo, Subpalavra
abcb 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 subpalavra


Linguagens Formais e Autômatos - P. Blauth Menezes               12
Exp: Palavra: Linguagem de Programação
Em uma linguagem de programação como Pascal

                                         uma palavra é um programa




Linguagens Formais e Autômatos - P. Blauth Menezes                   13
Def: Concatenação de Palavras
Concatenaçã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 segunda

Notação
  • justaposição dos símbolos que representam as palavras
    componentes

Propriedades
   • Elemento Neutro: ε w = w = w ε
   • Associativa: v(w t) = (v w)t

Associatividade - parênteses podem ser omitidos: v w t


Linguagens Formais e Autômatos - P. Blauth Menezes                   14
Exp: Concatenação de Palavras
Σ = { a, b } um alfabeto. Para v = baaaa e w = bb

     • v w = baaaabb
     • v ε = v = baaaa


Def: Concatenação Sucessiva de uma Palavra
Concatenação Sucessiva de uma Palavra (com ela mesma) ou
simplesmente Concatenação Sucessiva

               wn         onde n é o número de concatenações sucessivas

indutivamente a partir da operação de concatenação

     • w0 = ε
     • wn = w wn-1, para n > 0

Linguagens Formais e Autômatos - P. Blauth Menezes                        15
Exp: Concatenação Sucessiva
w 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
◆    Se Σ é um alfabeto
     • Σ* conjunto de todas as palavras possíveis sobre Σ
     • Σ+ = Σ* - { ε }


Def: Conjunto de Todas as Palavras
Σ alfabeto. Σ* é indutivamente definido

Base 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
◆    Definição alternativa para palavra sobre um alfabeto Σ
     • qualquer elemento w de Σ*

                                                     w ∈ Σ*

Exp: Conjunto de Todas as Palavras
Se Σ = { 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
Def: Comprimento, Tamanho de uma Palavra
De 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 N



Exp: Palavra, Prefixo, Sufixo, Comprimento
abcb = 4
ε = 0




Linguagens Formais e Autômatos - P. Blauth Menezes   19
2 – Linguagens e Gramáticas

     2.1        Alfabeto
     2.2        Palavra
     2.3        Linguagem Formal
     2.4        Gramática




Linguagens Formais e Autômatos - P. Blauth Menezes   20
2.3 Linguagem Formal
Def: Linguagem Formal
Linguagem 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
Exp: Conjunto de Todas as Linguagens Sobre um
     Alfabeto
Conjunto das partes de Σ*

                                                     2Σ*



Exp: Linguagem Formal: Linguagem de Programação
Linguagem de programação como Pascal

              conjunto de todos os programas (palavras) da linguagem




Linguagens Formais e Autômatos - P. Blauth Menezes                     22
2 – Linguagens e Gramáticas

     2.1        Alfabeto
     2.2        Palavra
     2.3        Linguagem Formal
     2.4        Gramática




Linguagens Formais e Autômatos - P. Blauth Menezes   23
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) infinitas



Linguagens Formais e Autômatos - P. Blauth Menezes                 24
◆    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 formalismos




Linguagens Formais e Autômatos - P. Blauth Menezes                   25
Def: Gramática
Gramá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 inicial

Representação de uma regra de produção (α, β)
                                                         α→β

Representação abreviada para α → β1, α → β2, ..., α → βn
                                                 α → β1  β2  …  βn
Linguagens Formais e Autômatos - P. Blauth Menezes                         26
◆    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 linguagem




Linguagens Formais e Autômatos - P. Blauth Menezes                 27
Def: Relação de Derivação
G = (V, T, P, S) gramática
Derivaçã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
◆    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
◆    Gramática é um formalismo
     • aximático
     • de geração
        ∗ permite derivar ("gerar") todas as palavras da linguagem



Def: Linguagem Gerada
G = (V, T, P, S) gramática
Linguagem 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
Exp: Gramática, Derivação, Linguagem Gerada:
     Números Naturais
G = (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 0123




Linguagens Formais e Autômatos - P. Blauth Menezes      31
Exp: …Gramática, Derivação, Linguagem Gerada:
     Números Naturais
G = (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
     •   243

Linguagens Formais e Autômatos - P. Blauth Menezes       32
Portanto

     • S ⇒* 243

     • S ⇒+ 243

     • S ⇒6 243

Interpretaçã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 é natural




Linguagens Formais e Autômatos - P. Blauth Menezes                  33
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
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 → ε
     •   baba

Existe mais alguma derivação de baba?

Linguagens Formais e Autômatos - P. Blauth Menezes         35
Def: Gramáticas Equivalentes
G1 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 terminais



Linguagens Formais e Autômatos - P. Blauth Menezes                  36
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                              37

Mais conteúdo relacionado

Mais procurados

Introdução à programação
Introdução à programaçãoIntrodução à programação
Introdução à programação12anogolega
 
Aula08 tecnologia atm
Aula08   tecnologia atmAula08   tecnologia atm
Aula08 tecnologia atmCarlos Veiga
 
Language Model (N-Gram).pptx
Language Model (N-Gram).pptxLanguage Model (N-Gram).pptx
Language Model (N-Gram).pptxHeneWijaya
 
מצגת לוגיקה מלאה חלק 2 מתוך 3
מצגת לוגיקה מלאה חלק 2 מתוך 3מצגת לוגיקה מלאה חלק 2 מתוך 3
מצגת לוגיקה מלאה חלק 2 מתוך 3מורן אלקובי
 
Lógica de programação pascal
Lógica de programação   pascalLógica de programação   pascal
Lógica de programação pascalJocelma Rios
 
Semana10-ordenacao-pesquisa-vetores
Semana10-ordenacao-pesquisa-vetoresSemana10-ordenacao-pesquisa-vetores
Semana10-ordenacao-pesquisa-vetoresPedro Valente
 
Módulo 2 - Introdução à tecnologia GPON e FTTH
Módulo 2 - Introdução à tecnologia GPON e FTTHMódulo 2 - Introdução à tecnologia GPON e FTTH
Módulo 2 - Introdução à tecnologia GPON e FTTHFernando Reis
 
Heredograma novo
Heredograma novoHeredograma novo
Heredograma novopaulogrillo
 
2015: Fundamentos Teóricos da Computação
2015: Fundamentos Teóricos da Computação2015: Fundamentos Teóricos da Computação
2015: Fundamentos Teóricos da ComputaçãoLeandro de Castro
 
Aula05 - tecnologias dsl
Aula05 -  tecnologias dslAula05 -  tecnologias dsl
Aula05 - tecnologias dslCarlos Veiga
 
Algoritmos e linguagem pascal
Algoritmos e linguagem pascalAlgoritmos e linguagem pascal
Algoritmos e linguagem pascalangelicamenegassi
 
Algoritmos e Técnicas de Programação - Aula 01
Algoritmos e Técnicas de Programação - Aula 01Algoritmos e Técnicas de Programação - Aula 01
Algoritmos e Técnicas de Programação - Aula 01thomasdacosta
 
Análise de Algoritmos - Indução Finita
Análise de Algoritmos - Indução FinitaAnálise de Algoritmos - Indução Finita
Análise de Algoritmos - Indução FinitaDelacyr Ferreira
 
Introduction to natural language processing
Introduction to natural language processingIntroduction to natural language processing
Introduction to natural language processingMinh Pham
 

Mais procurados (18)

Introdução à programação
Introdução à programaçãoIntrodução à programação
Introdução à programação
 
Aula08 tecnologia atm
Aula08   tecnologia atmAula08   tecnologia atm
Aula08 tecnologia atm
 
Language Model (N-Gram).pptx
Language Model (N-Gram).pptxLanguage Model (N-Gram).pptx
Language Model (N-Gram).pptx
 
מצגת לוגיקה מלאה חלק 2 מתוך 3
מצגת לוגיקה מלאה חלק 2 מתוך 3מצגת לוגיקה מלאה חלק 2 מתוך 3
מצגת לוגיקה מלאה חלק 2 מתוך 3
 
Lógica de programação pascal
Lógica de programação   pascalLógica de programação   pascal
Lógica de programação pascal
 
Semana10-ordenacao-pesquisa-vetores
Semana10-ordenacao-pesquisa-vetoresSemana10-ordenacao-pesquisa-vetores
Semana10-ordenacao-pesquisa-vetores
 
Módulo 2 - Introdução à tecnologia GPON e FTTH
Módulo 2 - Introdução à tecnologia GPON e FTTHMódulo 2 - Introdução à tecnologia GPON e FTTH
Módulo 2 - Introdução à tecnologia GPON e FTTH
 
Heredograma novo
Heredograma novoHeredograma novo
Heredograma novo
 
2015: Fundamentos Teóricos da Computação
2015: Fundamentos Teóricos da Computação2015: Fundamentos Teóricos da Computação
2015: Fundamentos Teóricos da Computação
 
Skip gram and cbow
Skip gram and cbowSkip gram and cbow
Skip gram and cbow
 
Aula05 - tecnologias dsl
Aula05 -  tecnologias dslAula05 -  tecnologias dsl
Aula05 - tecnologias dsl
 
Tecnologia 1 g, 2g e 3g
Tecnologia 1 g, 2g e 3gTecnologia 1 g, 2g e 3g
Tecnologia 1 g, 2g e 3g
 
Seminar Report Mine
Seminar Report MineSeminar Report Mine
Seminar Report Mine
 
Algoritmos e linguagem pascal
Algoritmos e linguagem pascalAlgoritmos e linguagem pascal
Algoritmos e linguagem pascal
 
Algoritmos e Técnicas de Programação - Aula 01
Algoritmos e Técnicas de Programação - Aula 01Algoritmos e Técnicas de Programação - Aula 01
Algoritmos e Técnicas de Programação - Aula 01
 
Aula Herança Multifatorial
Aula Herança MultifatorialAula Herança Multifatorial
Aula Herança Multifatorial
 
Análise de Algoritmos - Indução Finita
Análise de Algoritmos - Indução FinitaAnálise de Algoritmos - Indução Finita
Análise de Algoritmos - Indução Finita
 
Introduction to natural language processing
Introduction to natural language processingIntroduction to natural language processing
Introduction to natural language processing
 

Semelhante a 02 linguagens e gramaticas

09 hierarquia de classes e linguagens e conclusoes
09   hierarquia de classes e linguagens e conclusoes09   hierarquia de classes e linguagens e conclusoes
09 hierarquia de classes e linguagens e conclusoesComputação Depressão
 
04 propriedades das linguagens regulares
04   propriedades das linguagens regulares04   propriedades das linguagens regulares
04 propriedades das linguagens regularesComputação Depressão
 
Linguagens Formais e Autômatos: alfabetos, palavras e linguagens
Linguagens Formais e Autômatos: alfabetos, palavras e linguagensLinguagens Formais e Autômatos: alfabetos, palavras e linguagens
Linguagens Formais e Autômatos: alfabetos, palavras e linguagensWellington Della Mura
 
linguagens regulares na ciencia da computação.pdf
linguagens regulares na ciencia da computação.pdflinguagens regulares na ciencia da computação.pdf
linguagens regulares na ciencia da computação.pdfjonathan509395
 
Gramáticas E Linguagens Formais
Gramáticas E Linguagens FormaisGramáticas E Linguagens Formais
Gramáticas E Linguagens Formaisguest47ac6
 
DOC.CURRICULAR 2023 - ANOS INICIAIS.pdf
DOC.CURRICULAR 2023 - ANOS INICIAIS.pdfDOC.CURRICULAR 2023 - ANOS INICIAIS.pdf
DOC.CURRICULAR 2023 - ANOS INICIAIS.pdfMITA18584
 
1 ciclo leitura_escrita
1 ciclo leitura_escrita1 ciclo leitura_escrita
1 ciclo leitura_escritaBeta Sá
 
Mini-curso Processamento de linguagens naturais: pondo em prática
Mini-curso Processamento de linguagens naturais: pondo em prática Mini-curso Processamento de linguagens naturais: pondo em prática
Mini-curso Processamento de linguagens naturais: pondo em prática William Colen
 
Aula 1 - Apresentação da disciplina e metodologia de trabalho. aspectos teori...
Aula 1 - Apresentação da disciplina e metodologia de trabalho. aspectos teori...Aula 1 - Apresentação da disciplina e metodologia de trabalho. aspectos teori...
Aula 1 - Apresentação da disciplina e metodologia de trabalho. aspectos teori...wab030
 
Hipóteses Alfabética.pptx
Hipóteses Alfabética.pptxHipóteses Alfabética.pptx
Hipóteses Alfabética.pptxEdileneBarbosa18
 
07 propriedades e reconhecimento das linguagens livres do contexto
07   propriedades e reconhecimento das linguagens livres do contexto07   propriedades e reconhecimento das linguagens livres do contexto
07 propriedades e reconhecimento das linguagens livres do contextoComputação Depressão
 
Texto Oral e Escrito
Texto Oral e EscritoTexto Oral e Escrito
Texto Oral e EscritoGrupo VAHALI
 

Semelhante a 02 linguagens e gramaticas (20)

06 linguagens livres do contexto
06   linguagens livres do contexto06   linguagens livres do contexto
06 linguagens livres do contexto
 
09 hierarquia de classes e linguagens e conclusoes
09   hierarquia de classes e linguagens e conclusoes09   hierarquia de classes e linguagens e conclusoes
09 hierarquia de classes e linguagens e conclusoes
 
04 propriedades das linguagens regulares
04   propriedades das linguagens regulares04   propriedades das linguagens regulares
04 propriedades das linguagens regulares
 
Aula1.0.pptx
Aula1.0.pptxAula1.0.pptx
Aula1.0.pptx
 
Linguagens Formais e Autômatos: alfabetos, palavras e linguagens
Linguagens Formais e Autômatos: alfabetos, palavras e linguagensLinguagens Formais e Autômatos: alfabetos, palavras e linguagens
Linguagens Formais e Autômatos: alfabetos, palavras e linguagens
 
linguagens regulares na ciencia da computação.pdf
linguagens regulares na ciencia da computação.pdflinguagens regulares na ciencia da computação.pdf
linguagens regulares na ciencia da computação.pdf
 
Python 03 - Sintaxe
Python 03 - SintaxePython 03 - Sintaxe
Python 03 - Sintaxe
 
Linguagens Formais
Linguagens FormaisLinguagens Formais
Linguagens Formais
 
Gramáticas E Linguagens Formais
Gramáticas E Linguagens FormaisGramáticas E Linguagens Formais
Gramáticas E Linguagens Formais
 
DOC.CURRICULAR 2023 - ANOS INICIAIS.pdf
DOC.CURRICULAR 2023 - ANOS INICIAIS.pdfDOC.CURRICULAR 2023 - ANOS INICIAIS.pdf
DOC.CURRICULAR 2023 - ANOS INICIAIS.pdf
 
1 ciclo leitura_escrita
1 ciclo leitura_escrita1 ciclo leitura_escrita
1 ciclo leitura_escrita
 
Oficina de ortografia 9 ano
Oficina de ortografia 9 anoOficina de ortografia 9 ano
Oficina de ortografia 9 ano
 
1 ciclo leitura_escrita
1 ciclo leitura_escrita1 ciclo leitura_escrita
1 ciclo leitura_escrita
 
Rec Paralela[1]
Rec Paralela[1]Rec Paralela[1]
Rec Paralela[1]
 
Oficina de ortografia 3 ano
Oficina de ortografia 3 anoOficina de ortografia 3 ano
Oficina de ortografia 3 ano
 
Mini-curso Processamento de linguagens naturais: pondo em prática
Mini-curso Processamento de linguagens naturais: pondo em prática Mini-curso Processamento de linguagens naturais: pondo em prática
Mini-curso Processamento de linguagens naturais: pondo em prática
 
Aula 1 - Apresentação da disciplina e metodologia de trabalho. aspectos teori...
Aula 1 - Apresentação da disciplina e metodologia de trabalho. aspectos teori...Aula 1 - Apresentação da disciplina e metodologia de trabalho. aspectos teori...
Aula 1 - Apresentação da disciplina e metodologia de trabalho. aspectos teori...
 
Hipóteses Alfabética.pptx
Hipóteses Alfabética.pptxHipóteses Alfabética.pptx
Hipóteses Alfabética.pptx
 
07 propriedades e reconhecimento das linguagens livres do contexto
07   propriedades e reconhecimento das linguagens livres do contexto07   propriedades e reconhecimento das linguagens livres do contexto
07 propriedades e reconhecimento das linguagens livres do contexto
 
Texto Oral e Escrito
Texto Oral e EscritoTexto Oral e Escrito
Texto Oral e Escrito
 

Mais de Computação Depressão

Sd08 (si) sistemas de arquivos distribuídos
Sd08 (si)   sistemas de arquivos distribuídosSd08 (si)   sistemas de arquivos distribuídos
Sd08 (si) sistemas de arquivos distribuídosComputação Depressão
 
Sd02 (si) gerenciamento de entrada e saída
Sd02 (si)   gerenciamento de entrada e saídaSd02 (si)   gerenciamento de entrada e saída
Sd02 (si) gerenciamento de entrada e saídaComputação Depressão
 

Mais de Computação Depressão (20)

Sd08 (si) sistemas de arquivos distribuídos
Sd08 (si)   sistemas de arquivos distribuídosSd08 (si)   sistemas de arquivos distribuídos
Sd08 (si) sistemas de arquivos distribuídos
 
Sd06 (si) exclusão mútua
Sd06 (si)   exclusão mútuaSd06 (si)   exclusão mútua
Sd06 (si) exclusão mútua
 
Sd05 (si) relógios e sincronização
Sd05 (si)   relógios e sincronizaçãoSd05 (si)   relógios e sincronização
Sd05 (si) relógios e sincronização
 
Sd04 (si) comunicação em sd
Sd04 (si)   comunicação em sdSd04 (si)   comunicação em sd
Sd04 (si) comunicação em sd
 
Sd03 (si) conceitos básicos de sd
Sd03 (si)   conceitos básicos de sdSd03 (si)   conceitos básicos de sd
Sd03 (si) conceitos básicos de sd
 
Sd02 (si) gerenciamento de entrada e saída
Sd02 (si)   gerenciamento de entrada e saídaSd02 (si)   gerenciamento de entrada e saída
Sd02 (si) gerenciamento de entrada e saída
 
Sd01 (si) sistemas de arquivos
Sd01 (si)   sistemas de arquivosSd01 (si)   sistemas de arquivos
Sd01 (si) sistemas de arquivos
 
Sd07 (si) eleição
Sd07 (si)   eleiçãoSd07 (si)   eleição
Sd07 (si) eleição
 
Ufbamat2013
Ufbamat2013Ufbamat2013
Ufbamat2013
 
Ufbaingles2013
Ufbaingles2013Ufbaingles2013
Ufbaingles2013
 
Ufbagab mat 2013
Ufbagab mat 2013Ufbagab mat 2013
Ufbagab mat 2013
 
Ufbagab ingles2013
Ufbagab ingles2013Ufbagab ingles2013
Ufbagab ingles2013
 
Ufbagab fis 2013
Ufbagab fis 2013Ufbagab fis 2013
Ufbagab fis 2013
 
Ufbafisqui2013
Ufbafisqui2013Ufbafisqui2013
Ufbafisqui2013
 
Ufbagab qui 2013
Ufbagab qui 2013Ufbagab qui 2013
Ufbagab qui 2013
 
Questesdetecnologia ano2002
Questesdetecnologia ano2002Questesdetecnologia ano2002
Questesdetecnologia ano2002
 
Questesdematemtica ano2003
Questesdematemtica ano2003Questesdematemtica ano2003
Questesdematemtica ano2003
 
Questesdematemtica ano2002
Questesdematemtica ano2002Questesdematemtica ano2002
Questesdematemtica ano2002
 
Questesdefundamentos ano2003
Questesdefundamentos ano2003Questesdefundamentos ano2003
Questesdefundamentos ano2003
 
Questesdefundamentos ano2002
Questesdefundamentos ano2002Questesdefundamentos ano2002
Questesdefundamentos ano2002
 

02 linguagens e gramaticas

  • 1. Linguagens Formais e Autômatos P. Blauth Menezes blauth@inf.ufrgs.br Departamento de Informática Teórica Instituto de Informática / UFRGS Matemática Discreta para Ciência da Computação - P. Blauth Menezes 1
  • 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 2
  • 3. 2 – Linguagens e Gramáticas 2.1 Alfabeto 2.2 Palavra 2.3 Linguagem Formal 2.4 Gramática Linguagens Formais e Autômatos - P. Blauth Menezes 3
  • 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 linguagens Linguagens Formais e Autômatos - P. Blauth Menezes 4
  • 5. Linguagem • conceito fundamental em Computação e Informática ◆ Para definir linguagem • alfabeto • palavra ou cadeia de caracteres Linguagens Formais e Autômatos - P. Blauth Menezes 5
  • 6. 2 – Linguagens e Gramáticas 2.1 Alfabeto 2.2 Palavra 2.3 Linguagem Formal 2.4 Gramática Linguagens Formais e Autômatos - P. Blauth Menezes 6
  • 7. 2.1 Alfabeto ◆ Símbolo ou Caractere • entidade abstrata básica, não definida formalmente • base para definições • exemplos: letras e dígitos Def: Alfabeto Conjunto finito de símbolos ou caracteres ◆ Portanto • conjunto infinito não é alfabeto • ∅ é um alfabeto Linguagens Formais e Autômatos - P. Blauth Menezes 7
  • 8. Exp: Alfabeto Sã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. Exp: Alfabeto: Linguagem de Programação Alfabeto 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. 2 – Linguagens e Gramáticas 2.1 Alfabeto 2.2 Palavra 2.3 Linguagem Formal 2.4 Gramática Linguagens Formais e Autômatos - P. Blauth Menezes 10
  • 11. 2.2 Palavra Def: Palavra, Cadeia de Caracteres, Sentença Sobre um alfabeto • seqüência finita de símbolos justapostos ◆ Cadeia sem símbolos ε - cadeia vazia ou palavra vazia Linguagens Formais e Autômatos - P. Blauth Menezes 11
  • 12. Def: Prefixo, Sufixo, Subpalavra Prefixo (Sufixo) • qualquer seqüência inicial (final) de símbolos da palavra Subpalavra • qualquer seqüência de símbolos contíguos da palavra Exp: Palavra, Prefixo, Sufixo, Subpalavra abcb 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 subpalavra Linguagens Formais e Autômatos - P. Blauth Menezes 12
  • 13. Exp: Palavra: Linguagem de Programação Em uma linguagem de programação como Pascal uma palavra é um programa Linguagens Formais e Autômatos - P. Blauth Menezes 13
  • 14. Def: Concatenação de Palavras Concatenaçã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 segunda Notação • justaposição dos símbolos que representam as palavras componentes Propriedades • Elemento Neutro: ε w = w = w ε • Associativa: v(w t) = (v w)t Associatividade - parênteses podem ser omitidos: v w t Linguagens Formais e Autômatos - P. Blauth Menezes 14
  • 15. Exp: Concatenação de Palavras Σ = { a, b } um alfabeto. Para v = baaaa e w = bb • v w = baaaabb • v ε = v = baaaa Def: Concatenação Sucessiva de uma Palavra Concatenação Sucessiva de uma Palavra (com ela mesma) ou simplesmente Concatenação Sucessiva wn onde n é o número de concatenações sucessivas indutivamente a partir da operação de concatenação • w0 = ε • wn = w wn-1, para n > 0 Linguagens Formais e Autômatos - P. Blauth Menezes 15
  • 16. Exp: Concatenação Sucessiva w 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. Se Σ é um alfabeto • Σ* conjunto de todas as palavras possíveis sobre Σ • Σ+ = Σ* - { ε } Def: Conjunto de Todas as Palavras Σ alfabeto. Σ* é indutivamente definido Base 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. Definição alternativa para palavra sobre um alfabeto Σ • qualquer elemento w de Σ* w ∈ Σ* Exp: Conjunto de Todas as Palavras Se Σ = { 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. Def: Comprimento, Tamanho de uma Palavra De 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 N Exp: Palavra, Prefixo, Sufixo, Comprimento abcb = 4 ε = 0 Linguagens Formais e Autômatos - P. Blauth Menezes 19
  • 20. 2 – Linguagens e Gramáticas 2.1 Alfabeto 2.2 Palavra 2.3 Linguagem Formal 2.4 Gramática Linguagens Formais e Autômatos - P. Blauth Menezes 20
  • 21. 2.3 Linguagem Formal Def: Linguagem Formal Linguagem 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. Exp: Conjunto de Todas as Linguagens Sobre um Alfabeto Conjunto das partes de Σ* 2Σ* Exp: Linguagem Formal: Linguagem de Programação Linguagem de programação como Pascal conjunto de todos os programas (palavras) da linguagem Linguagens Formais e Autômatos - P. Blauth Menezes 22
  • 23. 2 – Linguagens e Gramáticas 2.1 Alfabeto 2.2 Palavra 2.3 Linguagem Formal 2.4 Gramática Linguagens Formais e Autômatos - P. Blauth Menezes 23
  • 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) infinitas Linguagens Formais e Autômatos - P. Blauth Menezes 24
  • 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 formalismos Linguagens Formais e Autômatos - P. Blauth Menezes 25
  • 26. Def: Gramática Gramá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 inicial Representação de uma regra de produção (α, β) α→β Representação abreviada para α → β1, α → β2, ..., α → βn α → β1  β2  …  βn Linguagens Formais e Autômatos - P. Blauth Menezes 26
  • 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 linguagem Linguagens Formais e Autômatos - P. Blauth Menezes 27
  • 28. Def: Relação de Derivação G = (V, T, P, S) gramática Derivaçã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. 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. Gramática é um formalismo • aximático • de geração ∗ permite derivar ("gerar") todas as palavras da linguagem Def: Linguagem Gerada G = (V, T, P, S) gramática Linguagem 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. Exp: Gramática, Derivação, Linguagem Gerada: Números Naturais G = (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 0123 Linguagens Formais e Autômatos - P. Blauth Menezes 31
  • 32. Exp: …Gramática, Derivação, Linguagem Gerada: Números Naturais G = (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 • 243 Linguagens Formais e Autômatos - P. Blauth Menezes 32
  • 33. Portanto • S ⇒* 243 • S ⇒+ 243 • S ⇒6 243 Interpretaçã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 é natural Linguagens Formais e Autômatos - P. Blauth Menezes 33
  • 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. 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 → ε • baba Existe mais alguma derivação de baba? Linguagens Formais e Autômatos - P. Blauth Menezes 35
  • 36. Def: Gramáticas Equivalentes G1 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 terminais Linguagens Formais e Autômatos - P. Blauth Menezes 36
  • 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ões Linguagens Formais e Autômatos - P. Blauth Menezes 37