SlideShare ist ein Scribd-Unternehmen logo
1 von 36
Downloaden Sie, um offline zu lesen
Curso: Ciência da Computação
       Turma: 4º/5º Série


Aspectos Teóricos da Computação

            Aula 3

   Linguagens e Gramáticas
Linguagem
O Dicionário Aurélio define linguagem como:


o uso da palavra articulada ou escrita como meio
  de expressão e comunicação entre as pessoas.
Entretanto, esta definição não é suficientemente
 precisa para permitir o desenvolvimento
 matemático de uma teoria baseada em
 linguagens.
Precisamos de uma definição mais objetiva e
 ampla.
Uma linguagem é composta de de palavras que
 formam um alfabeto. da Computação
               Aspectos Teóricos                   2
Albabeto
Um alfabeto é um conjunto finito de símbolos ou
 caracteres.
Portanto:
  ●   Um conjunto infinito não é um alfabeto;
  ●   o conjunto vazio é um alfabeto.
Exemplo:
  {a,b,c} ou {} são alfabetos
  N não é um alfabeto
  {a,b,aa,ab,bb,ba,bb....} não é um alfabeto



                    Aspectos Teóricos da Computação   3
Alfabeto de uma Linguagem de
             Programação
O alfabeto de uma linguagem de programação
 como Pascal é o conjunto de todos os símbolos
 usados na construção de programas, incluindo
 letras, dígitos, caracteres especiais, espaço.




                Aspectos Teóricos da Computação   4
Palavra
Uma Palavra, Cadeia de Caracteres ou Sentença
 sobre um alfabeto é uma sequência finita de
 símbolos do alfabeto justapostos.
O símbolo ε denota a palavra ou cadeia vazia.




                Aspectos Teóricos da Computação   5
Prefixo, Sufixo e Subpalavra
Um Prefixo ou Sufixo de uma palavra é qualquer sequência inicial respectivamente final
  de símbolos da palavra.


Uma Subpalavra é qualquer sequência de símbolos contíguos da palavra.


Exemplos:
abcb é uma palavra do alfabeto {a,b,c}
Relativamente à palavra abcb, vale que:

    ε , a, ab, abc, abcb são todos os prefixos;
    ε, b, cb, bcb, abcb são todos os sufixo;
    Qualquer prefixo ou sufixo é uma subpalavra;




                              Aspectos Teóricos da Computação                            6
Palavra: Linguagem de Programação
Em uma linguagem de programação como
 Pascal, uma palavra é um programa.




              Aspectos Teóricos da Computação   7
Concatenação
A Concatenação de Palavras ou simplesmente Concatenação é uma operação
   binária definida sobre um conjunto de palavras, a qual associa a cada par
   de palavras uma palavra formada pela justaposição de primeira com a
   segunda.
Propriedades
   suponha v,w,t palavras quaisquer
   a) Associativa. v(wt) = (vw)t
   b) Elemento neutro. εw = wε
Exemplo: Suponha o alfabeto Σ = {a,b}. Então, para as palavras v =
  baaaa e w = bb vale que:
   vw = baaaabb
   vε = baaaa


Concatenação sucessiva de uma palavra..
Se w = a o que seria w5?
                           Aspectos Teóricos da Computação                 8
Concatenação Sucessiva
A Concatenação Sucessiva é representada na forma de um expoente,
wn onde n representa o número de concatenações sucessivas é definida
   indutivamente a partir da operação de concatenção binária, como segue:
w0 = ε
wn = wwn-1 n>0


Exemplo
   Seja w uma palavra e a um símbolo, Então:
   w3 = www
   w1 = w
   a5 = aaaaa
   an = aaaa..a (o símbolo repetido n vezes)



                          Aspectos Teóricos da Computação                   9
Alfabeto
Se Σ representa o alfabeto, então:
Σ* denota o conjunto de todas as palavras possíveis sobre
 Σ.
Σ+ denota Σ* - {ε }


Conjunto de todas as palavras.
Seja Σ um alfabeto. Então o conjunto de toda as palavras
  Σ* é indutivamente definido como segue:
a. Base da indução: ε є Σ* para qualquer x є ∑, vale x є ∑*
b. Passo da indução: Se u e v são palavras de ∑* então a
   concatenação uv é uma palavra de ∑*
                      Aspectos Teóricos da Computação         10
Exemplo: Conjunto de todas as palavras
●   Se ∑ = {a,b}, então:
    ●
        ∑+ = {a,b,aa,ab,ba,bb,aaa,...}
    ●   ∑* = {ε, a,b,aa,ab,ba,bb,aaa,...}




                       Aspectos Teóricos da Computação   11
Comprimento, tamanho de uma palavra
●   O comprimento ou Tamanho de uma palavra w,
    representado por |w|, é o número de símbolos
    que compõem a palavra. Portanto, para um
    dado alfabeto ∑ , comprimento é uma função
    com domínio em ∑* e codomínio em N.
    a. |abc| = 3
    b. | ε | = 0




                   Aspectos Teóricos da Computação   12
Linguagem Formal
Uma linguagem formal ou simplesmente
Linguagem L sobre um alfaberto ∑ é um
conjunto de palavras sobre ∑, ou seja:
L ⊆ ∑*




              Aspectos Teóricos da Computação   13
Exemplo de Linguagem Formal
●   O conjunto Ø e o conjunto formado pela palavra vazia { ε }
    são linguagens sobre qualquer alfabeto. Obviamente, vale
    que:
    Ø≠{ε}
●   Os conjuntos ∑* e ∑+ são linguagens sobre um alfabeto ∑
    qualquer. Obviamente, vale que:
    ∑* ≠ ∑+




                      Aspectos Teóricos da Computação        14
Exercício
●   Suponha o alfabeto ∑ = {a,b}. Então, o conjunto de
    palíndromos (palavras que tem a mesma leitura da
    esquerda para a direita e vice-versa) sobre ∑ é um
    exemplo de linguagem infinita. Quais são os elementos
    dessa linguagem?




                     Aspectos Teóricos da Computação        15
Exemplo de Linguagem Formal
●   Suponha o alfabeto ∑ = {a,b}. Então, o conjunto de
    palíndromos (palavras que tem a mesma leitura da
    esquerda para a direita e vice-versa) sobre ∑ é um
    exemplo de linguagem infinita. Assim, são palavras dessa
    linguagem:
      , a, b, aa, bb, aaa, aba, bab, bbb, aaa, ...




                        Aspectos Teóricos da Computação    16
Exemplo: Linguagem Formal: Linguagem de
                   Programação
●   Um linguagem de programação como C é
    formalmente definida pelo conjunto de todos os
    programas (palavras) da linguagem.




                  Aspectos Teóricos da Computação   17
Gramática
Como definir todos os programas de uma
determinada linguagem se torna inviável pois é
infinito criou-se uma nova maneira de especificar
linguagem de maneira finita, a gramática.


   Uma gramática é, basicamente, um conjunto
    finito de regras as quais, quando aplicadas
   sucessivamente, geram palavras. O conjunto
        de todas a palavras geradas por uma
           gramática define as linguagens.


                 Aspectos Teóricos da Computação    18
Gramática
Exemplo de Gramática:
                             S→A
                           A→0A1
                              A→ε
Uma gramática consiste de uma coleção de regras que
especificam como derivar strings de uma linguagem.
As regras de produção envolvem símbolos da linguagem
(ou terminais) e variáveis (ou símbolos não-terminais),
que representam conjuntos de strings.
Uma das variáveis é distinguida como símbolo inicial.


                   Aspectos Teóricos da Computação      19
Exemplo de Derivação de String
Seja G1 a seguinte gramática:
                                     S→A
                                   A → 0A1
                                      A →ε
Exemplo de derivação de string usando G1 :
           S ⇒ A ⇒ 0A1 ⇒ 00A11 ⇒ 000A111 ⇒ 000111
A sequência de substituições é chamada de derivação.
O conjunto de todos os strings de terminais gerados desta forma
constitui a linguagem especificada pela gramática.
Escrevemos L(G) para denotar a linguagem gerada pela gramática
G. Portanto, L(G1 ) = {0n1n | n ≥ 0 }

000111 é chamada de string terminal pois não tem como substituir mais
nenhuma variável nela.
                           Aspectos Teóricos da Computação              20
Gramática
Uma gramática de Chomsky, Gramática Irrestrita ou simplesmente
Gramática é uma quadrupla ordenada:
       G = {V, ∑,P,S} na qual:
a. V, um conjunto finito de símbolos variáveis ou não terminais;
b. ∑, um conjunto finito de símbolos terminais ou constantes disjunto de
V;
c. P: (V U ∑ )+ → (V U ∑ )* é uma relação finita (ou seja, P é um conjunto
finito de pares), denominada de Relação de Produções ou simplesmente
produções. Cada par da relação é denominado de regra de produção ou
simplesmente produção; P pode ser considerada a função que leva um
elemento x a um elemento y.
d. S, um elemento distinguido de V denominado símbolo inicial ou
variável inicial.




                           Aspectos Teóricos da Computação              21
Exemplo de Gramática
G = ({S, A}, {0, 1}, R, S) onde R:
                 S→A
               A → 0A1
                    A→ε




             Aspectos Teóricos da Computação   22
Exercício de Gramática
Formule uma outra gramática
baseada na gramática do exemplo
G = ({S, A}, {0, 1}, R, S) onde R:
                                      S→A
                                     A → 0A1
                                      A→ε
15 minutos em grupo




                           Aspectos Teóricos da Computação   23
Derivação
●   Se u, v , w ∈ (V ∪ ∑ )∗ (i.e., são strings de variáveis e
    terminais) e α → β ∈ R (i.e., é uma regra da gramática) então
    dizemos que uαv deriva uβv, escrito como uαv ⇒ uβv .
●   Podemos também dizer que uβv é derivado diretamente de uαv
    usando a regra α → β
●   u ⇒k v se existe uma sequência finita
    u0 , u1 , . . . , uk ∈ (V ∪ ∑ )∗ , para k > 0, tal que
    u = u 0 ⇒ u1 ⇒ . . . ⇒ u k = v
●   Também dizemos que u0 , u1 , . . . , uk é uma derivação de v a
    partir de u
●   Escrevemos u ⇒∗ v se u = v ou u ⇒k v para algum k > 0




                           Aspectos Teóricos da Computação           24
Linguagem Especificada por uma
              Gramática
Seja G = (V , Σ, R, S) uma gramática.
A linguagem especificada por G é
    L(G) = {w ∈ Σ∗ | S ⇒∗ w }




                  Aspectos Teóricos da Computação   25
Tipos de Regras




 Aspectos Teóricos da Computação   26
Tipos de Gramática – Hierarquia de
            Chomsky




           Aspectos Teóricos da Computação   27
Notação
Para distinguir não-terminais de terminais,
frequentemente usamos não-terminais entre < > e
terminais entre aspas ” ”.
Se duas ou mais regras têm o mesmo lado
esquerdo, por exemplo:
A → 0A1 e A →ε
podemos escrever, de forma mais compacta
A → 0A1 | ε.


Obs. Só use essa regra quando tudo estiver
muito claro na sua cabeça.
                 Aspectos Teóricos da Computação   28
Gramática Livre de Contexto G2
A gramática G2 a seguir especifica um fragmento da língua inglesa:
<SENTENCE> → <NOUN_PHRASE><VERB_PHRASE>
<NOUN_PHRASE> → <CP_NOUN> | <CP_NOUN><PREP_PHRASE>
<VERB_PHRASE> → <CP_VERB> | <CP_VERB><PREP_PHRASE>
<PREP_PHRASE> → <PREP><CP_NOUN>
<CP_NOUN> → <ARTICLE><NOUN>
<CP_VERB> → <VERB> | <VERB><NOUN_PHRASE>
<ARTICLE> → a | the
<NOUN> → boy | girl | flower
<VERB> → touches | likes | sees
<PREP> → with



                        Aspectos Teóricos da Computação              29
Gramática Livre de Contexto G2
Note que:
A CFG(Gramática livre de contexto) G2 tem 10 variáveis (escritas em
letras maiúsculas e entra < >) e 9 não-terminais (escritos no alfabeto
padrão), mais um caractere de espaço.
A CFG G2 tem 18 regras.
Exemplos de strings que pertencem a L(G2):
a boy sees
the boy sees a flower
a girl with a flower likes the boy




                           Aspectos Teóricos da Computação               30
Exemplo de Derivação em G2
<SENTENCE>   ⇒ <NOUN_PHRASE><VERB_PHRASE>
             ⇒ <CP_NOUN><VERB_PHRASE>
             ⇒ <ARTICLE><NOUN><VERB_PHRASE>
             ⇒ a <NOUN><VERB_PHRASE>
             ⇒ a boy <VERB_PHRASE>
             ⇒ a boy <CP_VERB>
             ⇒ a boy <VERB>
             ⇒ a boy sees




                   Aspectos Teóricos da Computação   31
Regras Lineares
Seja G = (V , Σ, R, S) uma CFG e A → w ∈ R,
onde A ∈ V .
  ●   r é linear se w ∈ Σ∗VΣ∗
  ●   r é linear à direita se w ∈ Σ∗V
  ●   r é linear à esquerda se w ∈ VΣ∗
  ●   r é terminal se w ∈ Σ∗




                     Aspectos Teóricos da Computação   32
Exemplo de Gramática Linear à Direita
 G = ({A, B}, {0, 1}, {A → 0A | B, B → 1B | ε }, A)




                 Aspectos Teóricos da Computação      33
Exemplo de Gramática Linear à Direita
    G = ({A, B}, {0, 1}, {A → 0A | B, B → 1B | ε}, A)


    Exemplo de derivação em G:
    A ⇒ 0A ⇒ 00A ⇒ 00B ⇒ 001B ⇒ 0011B ⇒
    00111B ⇒ 00111

●   Qual é a linguagem especificada por G?




                    Aspectos Teóricos da Computação     34
Exemplo de Gramática Linear à Direita
    G = ({A, B}, {0, 1}, {A → 0A | B, B → 1B | ε}, A)


    Exemplo de derivação em G:
    A ⇒ 0A ⇒ 00A ⇒ 00B ⇒ 001B ⇒ 0011B ⇒
    00111B ⇒ 00111

●   Qual é a linguagem especificada por G?
           L(G) = 0*1*




                         Aspectos Teóricos da Computação   35
Para a Próxima Aula
Ler capítulo 2 do livro texto.




                  Aspectos Teóricos da Computação   36

Weitere ähnliche Inhalte

Was ist angesagt?

Sistemas Distribuidos Java
Sistemas Distribuidos JavaSistemas Distribuidos Java
Sistemas Distribuidos Javalimadavi
 
Lógica para ciencia da computaçao joao nunes souza
Lógica para ciencia da computaçao   joao nunes souzaLógica para ciencia da computaçao   joao nunes souza
Lógica para ciencia da computaçao joao nunes souzaPaulo Cesar Diniz Bicudo
 
Apresentação mvc
Apresentação mvcApresentação mvc
Apresentação mvcleopp
 
Introdução à Teoria dos Grafos
Introdução à Teoria dos GrafosIntrodução à Teoria dos Grafos
Introdução à Teoria dos GrafosBianca Dantas
 
Introdução a Linguagem de Programação C
Introdução a Linguagem de Programação CIntrodução a Linguagem de Programação C
Introdução a Linguagem de Programação CGercélia Ramos
 
Implicação Lógica
Implicação LógicaImplicação Lógica
Implicação LógicaHugo Souza
 
Administração de Florestas (Power Point)
Administração de Florestas (Power Point)Administração de Florestas (Power Point)
Administração de Florestas (Power Point)Djeison Machado
 
Apresentando a Linguagem de Programação Python
Apresentando a Linguagem de Programação PythonApresentando a Linguagem de Programação Python
Apresentando a Linguagem de Programação PythonPriscila Mayumi
 
Aula transformações de coordenadas
Aula  transformações de coordenadasAula  transformações de coordenadas
Aula transformações de coordenadasellensouza74
 
Algoritmos 1 - Semana 2
Algoritmos 1 - Semana 2Algoritmos 1 - Semana 2
Algoritmos 1 - Semana 2Eder Samaniego
 
Diagrama de Atividades - UML
Diagrama de Atividades - UMLDiagrama de Atividades - UML
Diagrama de Atividades - UMLVinícius Barros
 
mod4-estruturas-dadosestaticas-ordenacao
mod4-estruturas-dadosestaticas-ordenacaomod4-estruturas-dadosestaticas-ordenacao
mod4-estruturas-dadosestaticas-ordenacaodiogoa21
 
Exercícios Resolvidos - Arquitetura e Organização de Computadores
Exercícios Resolvidos - Arquitetura e Organização de ComputadoresExercícios Resolvidos - Arquitetura e Organização de Computadores
Exercícios Resolvidos - Arquitetura e Organização de ComputadoresRonildo Oliveira
 
Lógica de Programação e Algoritmos
Lógica de Programação e AlgoritmosLógica de Programação e Algoritmos
Lógica de Programação e AlgoritmosMario Jorge Pereira
 
tmn - Introdução ao JavaScript
tmn - Introdução ao JavaScripttmn - Introdução ao JavaScript
tmn - Introdução ao JavaScriptClaudio Gamboa
 

Was ist angesagt? (20)

Sistemas Distribuidos Java
Sistemas Distribuidos JavaSistemas Distribuidos Java
Sistemas Distribuidos Java
 
Lógica para ciencia da computaçao joao nunes souza
Lógica para ciencia da computaçao   joao nunes souzaLógica para ciencia da computaçao   joao nunes souza
Lógica para ciencia da computaçao joao nunes souza
 
Apresentação mvc
Apresentação mvcApresentação mvc
Apresentação mvc
 
Introdução à Teoria dos Grafos
Introdução à Teoria dos GrafosIntrodução à Teoria dos Grafos
Introdução à Teoria dos Grafos
 
Aula 4- Engenharia de Software
Aula 4- Engenharia de SoftwareAula 4- Engenharia de Software
Aula 4- Engenharia de Software
 
Introdução a Linguagem de Programação C
Introdução a Linguagem de Programação CIntrodução a Linguagem de Programação C
Introdução a Linguagem de Programação C
 
Implicação Lógica
Implicação LógicaImplicação Lógica
Implicação Lógica
 
Algoritmos em portugol
Algoritmos em portugolAlgoritmos em portugol
Algoritmos em portugol
 
Administração de Florestas (Power Point)
Administração de Florestas (Power Point)Administração de Florestas (Power Point)
Administração de Florestas (Power Point)
 
Apresentando a Linguagem de Programação Python
Apresentando a Linguagem de Programação PythonApresentando a Linguagem de Programação Python
Apresentando a Linguagem de Programação Python
 
Aula transformações de coordenadas
Aula  transformações de coordenadasAula  transformações de coordenadas
Aula transformações de coordenadas
 
Modelagem de dados
Modelagem de dadosModelagem de dados
Modelagem de dados
 
Algoritmos 1 - Semana 2
Algoritmos 1 - Semana 2Algoritmos 1 - Semana 2
Algoritmos 1 - Semana 2
 
Aula javascript
Aula  javascriptAula  javascript
Aula javascript
 
Diagrama de Atividades - UML
Diagrama de Atividades - UMLDiagrama de Atividades - UML
Diagrama de Atividades - UML
 
mod4-estruturas-dadosestaticas-ordenacao
mod4-estruturas-dadosestaticas-ordenacaomod4-estruturas-dadosestaticas-ordenacao
mod4-estruturas-dadosestaticas-ordenacao
 
Exercícios Resolvidos - Arquitetura e Organização de Computadores
Exercícios Resolvidos - Arquitetura e Organização de ComputadoresExercícios Resolvidos - Arquitetura e Organização de Computadores
Exercícios Resolvidos - Arquitetura e Organização de Computadores
 
Lógica de Programação e Algoritmos
Lógica de Programação e AlgoritmosLógica de Programação e Algoritmos
Lógica de Programação e Algoritmos
 
tmn - Introdução ao JavaScript
tmn - Introdução ao JavaScripttmn - Introdução ao JavaScript
tmn - Introdução ao JavaScript
 
Visualg
VisualgVisualg
Visualg
 

Ähnlich wie Aula 3 linguagens e gramaticas

2º/2012 - Prova 02 de Autômatos e Computabilidade
2º/2012 - Prova 02 de Autômatos e Computabilidade2º/2012 - Prova 02 de Autômatos e Computabilidade
2º/2012 - Prova 02 de Autômatos e Computabilidadeshichibukai_01
 
Aula 1 -_introducao_e_conceitos_basicos_linguagem_
Aula 1 -_introducao_e_conceitos_basicos_linguagem_Aula 1 -_introducao_e_conceitos_basicos_linguagem_
Aula 1 -_introducao_e_conceitos_basicos_linguagem_Conceição Ramos
 
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 formais e autômatos
Linguagens formais e autômatosLinguagens formais e autômatos
Linguagens formais e autômatosLuccas Reis
 
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
 
Aula 9 propriedadedas linguagensregulares
Aula 9   propriedadedas linguagensregularesAula 9   propriedadedas linguagensregulares
Aula 9 propriedadedas linguagensregulareswab030
 
Prova 01 de Autômatos e Computabilidade
Prova 01 de Autômatos e ComputabilidadeProva 01 de Autômatos e Computabilidade
Prova 01 de Autômatos e Computabilidadeshichibukai_01
 
Aula 6 relações semânticas entre os conectivos da lógica proposicional
Aula 6   relações semânticas entre os conectivos da lógica proposicionalAula 6   relações semânticas entre os conectivos da lógica proposicional
Aula 6 relações semânticas entre os conectivos da lógica proposicionalPaulo Cesar Diniz Bicudo
 
Aula 05 - explicação de conteúdos e didática
Aula 05 - explicação de conteúdos e didáticaAula 05 - explicação de conteúdos e didática
Aula 05 - explicação de conteúdos e didáticajuliacttprofissional
 
Aula 2 conceitos fundamentais-conjuntoserelacoes
Aula 2   conceitos fundamentais-conjuntoserelacoesAula 2   conceitos fundamentais-conjuntoserelacoes
Aula 2 conceitos fundamentais-conjuntoserelacoeswab030
 
Dicas quentes conjuntos
Dicas quentes conjuntosDicas quentes conjuntos
Dicas quentes conjuntostrigono_metria
 
Aula 12 revisãodos exercícios
Aula 12   revisãodos exercíciosAula 12   revisãodos exercícios
Aula 12 revisãodos exercícioswab030
 
2º/2012 - Prova 01 de Autômatos e Computabilidade
2º/2012 - Prova 01 de Autômatos e Computabilidade2º/2012 - Prova 01 de Autômatos e Computabilidade
2º/2012 - Prova 01 de Autômatos e Computabilidadeshichibukai_01
 
Gramáticas E Linguagens Formais
Gramáticas E Linguagens FormaisGramáticas E Linguagens Formais
Gramáticas E Linguagens Formaisguest47ac6
 

Ähnlich wie Aula 3 linguagens e gramaticas (20)

2º/2012 - Prova 02 de Autômatos e Computabilidade
2º/2012 - Prova 02 de Autômatos e Computabilidade2º/2012 - Prova 02 de Autômatos e Computabilidade
2º/2012 - Prova 02 de Autômatos e Computabilidade
 
Compiladores 2
Compiladores 2Compiladores 2
Compiladores 2
 
Aula 1 -_introducao_e_conceitos_basicos_linguagem_
Aula 1 -_introducao_e_conceitos_basicos_linguagem_Aula 1 -_introducao_e_conceitos_basicos_linguagem_
Aula 1 -_introducao_e_conceitos_basicos_linguagem_
 
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
 
First Order Logic
First Order LogicFirst Order Logic
First Order Logic
 
Linguagens formais e autômatos
Linguagens formais e autômatosLinguagens formais e autômatos
Linguagens formais e autômatos
 
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
 
Aula 9 propriedadedas linguagensregulares
Aula 9   propriedadedas linguagensregularesAula 9   propriedadedas linguagensregulares
Aula 9 propriedadedas linguagensregulares
 
Prova 01 de Autômatos e Computabilidade
Prova 01 de Autômatos e ComputabilidadeProva 01 de Autômatos e Computabilidade
Prova 01 de Autômatos e Computabilidade
 
Aula 6 relações semânticas entre os conectivos da lógica proposicional
Aula 6   relações semânticas entre os conectivos da lógica proposicionalAula 6   relações semânticas entre os conectivos da lógica proposicional
Aula 6 relações semânticas entre os conectivos da lógica proposicional
 
Gramaticas
GramaticasGramaticas
Gramaticas
 
Python 03 - Sintaxe
Python 03 - SintaxePython 03 - Sintaxe
Python 03 - Sintaxe
 
Aula 05 - explicação de conteúdos e didática
Aula 05 - explicação de conteúdos e didáticaAula 05 - explicação de conteúdos e didática
Aula 05 - explicação de conteúdos e didática
 
Aula 2 conceitos fundamentais-conjuntoserelacoes
Aula 2   conceitos fundamentais-conjuntoserelacoesAula 2   conceitos fundamentais-conjuntoserelacoes
Aula 2 conceitos fundamentais-conjuntoserelacoes
 
Dicas quentes conjuntos
Dicas quentes conjuntosDicas quentes conjuntos
Dicas quentes conjuntos
 
Matematica quantica
Matematica quanticaMatematica quantica
Matematica quantica
 
Aula 12 revisãodos exercícios
Aula 12   revisãodos exercíciosAula 12   revisãodos exercícios
Aula 12 revisãodos exercícios
 
2º/2012 - Prova 01 de Autômatos e Computabilidade
2º/2012 - Prova 01 de Autômatos e Computabilidade2º/2012 - Prova 01 de Autômatos e Computabilidade
2º/2012 - Prova 01 de Autômatos e Computabilidade
 
Gramáticas E Linguagens Formais
Gramáticas E Linguagens FormaisGramáticas E Linguagens Formais
Gramáticas E Linguagens Formais
 
Pag 01.121
Pag 01.121Pag 01.121
Pag 01.121
 

Mehr von wab030

Internet e Educação
Internet e EducaçãoInternet e Educação
Internet e Educaçãowab030
 
Programe ou seja programado
Programe ou seja programadoPrograme ou seja programado
Programe ou seja programadowab030
 
Internet e cidadania
 Internet e cidadania Internet e cidadania
Internet e cidadaniawab030
 
Internet, Cidadania e Educação
Internet, Cidadania e EducaçãoInternet, Cidadania e Educação
Internet, Cidadania e Educaçãowab030
 
Internet e redes sociais digitais como instrumento para os movimentos sociais
 Internet e redes sociais digitais como instrumento para os movimentos sociais Internet e redes sociais digitais como instrumento para os movimentos sociais
Internet e redes sociais digitais como instrumento para os movimentos sociaiswab030
 
A internet como espaço de mobilidade social: democratização e regulamentação ...
A internet como espaço de mobilidade social: democratização e regulamentação ...A internet como espaço de mobilidade social: democratização e regulamentação ...
A internet como espaço de mobilidade social: democratização e regulamentação ...wab030
 
Hp0061
Hp0061Hp0061
Hp0061wab030
 
Internet e educação
Internet e educaçãoInternet e educação
Internet e educaçãowab030
 
Alimentos Orgânicos - Melhor para sua saúde
Alimentos Orgânicos - Melhor para sua saúdeAlimentos Orgânicos - Melhor para sua saúde
Alimentos Orgânicos - Melhor para sua saúdewab030
 
Notas b2redes
Notas b2redesNotas b2redes
Notas b2redeswab030
 
Notas info+banco
Notas info+bancoNotas info+banco
Notas info+bancowab030
 
Aula 10 camada de rede
Aula 10   camada de redeAula 10   camada de rede
Aula 10 camada de redewab030
 
Aula 10 maquinade turing
Aula 10   maquinade turingAula 10   maquinade turing
Aula 10 maquinade turingwab030
 
Wireshark ip sept_15_2009
Wireshark ip sept_15_2009Wireshark ip sept_15_2009
Wireshark ip sept_15_2009wab030
 
Aula 10 camada de rede
Aula 10   camada de redeAula 10   camada de rede
Aula 10 camada de redewab030
 
Aula 9 conceitos gerais de Rede
Aula 9   conceitos gerais de RedeAula 9   conceitos gerais de Rede
Aula 9 conceitos gerais de Redewab030
 
Wireshark UDP
Wireshark UDPWireshark UDP
Wireshark UDPwab030
 
Notas b1 redes
Notas b1 redesNotas b1 redes
Notas b1 redeswab030
 
Notas b1 info+banco
Notas b1 info+bancoNotas b1 info+banco
Notas b1 info+bancowab030
 
Aula 9 camada de rede
Aula 9   camada de redeAula 9   camada de rede
Aula 9 camada de redewab030
 

Mehr von wab030 (20)

Internet e Educação
Internet e EducaçãoInternet e Educação
Internet e Educação
 
Programe ou seja programado
Programe ou seja programadoPrograme ou seja programado
Programe ou seja programado
 
Internet e cidadania
 Internet e cidadania Internet e cidadania
Internet e cidadania
 
Internet, Cidadania e Educação
Internet, Cidadania e EducaçãoInternet, Cidadania e Educação
Internet, Cidadania e Educação
 
Internet e redes sociais digitais como instrumento para os movimentos sociais
 Internet e redes sociais digitais como instrumento para os movimentos sociais Internet e redes sociais digitais como instrumento para os movimentos sociais
Internet e redes sociais digitais como instrumento para os movimentos sociais
 
A internet como espaço de mobilidade social: democratização e regulamentação ...
A internet como espaço de mobilidade social: democratização e regulamentação ...A internet como espaço de mobilidade social: democratização e regulamentação ...
A internet como espaço de mobilidade social: democratização e regulamentação ...
 
Hp0061
Hp0061Hp0061
Hp0061
 
Internet e educação
Internet e educaçãoInternet e educação
Internet e educação
 
Alimentos Orgânicos - Melhor para sua saúde
Alimentos Orgânicos - Melhor para sua saúdeAlimentos Orgânicos - Melhor para sua saúde
Alimentos Orgânicos - Melhor para sua saúde
 
Notas b2redes
Notas b2redesNotas b2redes
Notas b2redes
 
Notas info+banco
Notas info+bancoNotas info+banco
Notas info+banco
 
Aula 10 camada de rede
Aula 10   camada de redeAula 10   camada de rede
Aula 10 camada de rede
 
Aula 10 maquinade turing
Aula 10   maquinade turingAula 10   maquinade turing
Aula 10 maquinade turing
 
Wireshark ip sept_15_2009
Wireshark ip sept_15_2009Wireshark ip sept_15_2009
Wireshark ip sept_15_2009
 
Aula 10 camada de rede
Aula 10   camada de redeAula 10   camada de rede
Aula 10 camada de rede
 
Aula 9 conceitos gerais de Rede
Aula 9   conceitos gerais de RedeAula 9   conceitos gerais de Rede
Aula 9 conceitos gerais de Rede
 
Wireshark UDP
Wireshark UDPWireshark UDP
Wireshark UDP
 
Notas b1 redes
Notas b1 redesNotas b1 redes
Notas b1 redes
 
Notas b1 info+banco
Notas b1 info+bancoNotas b1 info+banco
Notas b1 info+banco
 
Aula 9 camada de rede
Aula 9   camada de redeAula 9   camada de rede
Aula 9 camada de rede
 

Kürzlich hochgeladen

O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.denisecompasso2
 
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...andreiavys
 
LENDA DA MANDIOCA - leitura e interpretação
LENDA DA MANDIOCA - leitura e interpretaçãoLENDA DA MANDIOCA - leitura e interpretação
LENDA DA MANDIOCA - leitura e interpretaçãoLidianePaulaValezi
 
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfProjeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfHELENO FAVACHO
 
8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeitotatianehilda
 
Pesquisa Ação René Barbier Livro acadêmico
Pesquisa Ação René Barbier Livro  acadêmicoPesquisa Ação René Barbier Livro  acadêmico
Pesquisa Ação René Barbier Livro acadêmicolourivalcaburite
 
Educação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptxEducação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptxMarcosLemes28
 
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...MariaCristinaSouzaLe1
 
P P P 2024 - *CIEJA Santana / Tucuruvi*
P P P 2024  - *CIEJA Santana / Tucuruvi*P P P 2024  - *CIEJA Santana / Tucuruvi*
P P P 2024 - *CIEJA Santana / Tucuruvi*Viviane Moreiras
 
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...PatriciaCaetano18
 
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdfTCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdfamarianegodoi
 
6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptxJssicaCassiano2
 
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...Francisco Márcio Bezerra Oliveira
 
19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdfmarlene54545
 
Plano de aula Nova Escola períodos simples e composto parte 1.pptx
Plano de aula Nova Escola períodos simples e composto parte 1.pptxPlano de aula Nova Escola períodos simples e composto parte 1.pptx
Plano de aula Nova Escola períodos simples e composto parte 1.pptxPaulaYaraDaasPedro
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfHELENO FAVACHO
 
Conflitos entre: ISRAEL E PALESTINA.pdf
Conflitos entre:  ISRAEL E PALESTINA.pdfConflitos entre:  ISRAEL E PALESTINA.pdf
Conflitos entre: ISRAEL E PALESTINA.pdfjacquescardosodias
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxTailsonSantos1
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfTutor de matemática Ícaro
 
migração e trabalho 2º ano.pptx fenomenos
migração e trabalho 2º ano.pptx fenomenosmigração e trabalho 2º ano.pptx fenomenos
migração e trabalho 2º ano.pptx fenomenosLucianoPrado15
 

Kürzlich hochgeladen (20)

O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.
 
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
 
LENDA DA MANDIOCA - leitura e interpretação
LENDA DA MANDIOCA - leitura e interpretaçãoLENDA DA MANDIOCA - leitura e interpretação
LENDA DA MANDIOCA - leitura e interpretação
 
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfProjeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
 
8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito
 
Pesquisa Ação René Barbier Livro acadêmico
Pesquisa Ação René Barbier Livro  acadêmicoPesquisa Ação René Barbier Livro  acadêmico
Pesquisa Ação René Barbier Livro acadêmico
 
Educação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptxEducação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptx
 
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
 
P P P 2024 - *CIEJA Santana / Tucuruvi*
P P P 2024  - *CIEJA Santana / Tucuruvi*P P P 2024  - *CIEJA Santana / Tucuruvi*
P P P 2024 - *CIEJA Santana / Tucuruvi*
 
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
 
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdfTCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
 
6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx
 
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
 
19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf
 
Plano de aula Nova Escola períodos simples e composto parte 1.pptx
Plano de aula Nova Escola períodos simples e composto parte 1.pptxPlano de aula Nova Escola períodos simples e composto parte 1.pptx
Plano de aula Nova Escola períodos simples e composto parte 1.pptx
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
 
Conflitos entre: ISRAEL E PALESTINA.pdf
Conflitos entre:  ISRAEL E PALESTINA.pdfConflitos entre:  ISRAEL E PALESTINA.pdf
Conflitos entre: ISRAEL E PALESTINA.pdf
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
 
migração e trabalho 2º ano.pptx fenomenos
migração e trabalho 2º ano.pptx fenomenosmigração e trabalho 2º ano.pptx fenomenos
migração e trabalho 2º ano.pptx fenomenos
 

Aula 3 linguagens e gramaticas

  • 1. Curso: Ciência da Computação Turma: 4º/5º Série Aspectos Teóricos da Computação Aula 3 Linguagens e Gramáticas
  • 2. Linguagem O Dicionário Aurélio define linguagem como: o uso da palavra articulada ou escrita como meio de expressão e comunicação entre as pessoas. Entretanto, esta definição não é suficientemente precisa para permitir o desenvolvimento matemático de uma teoria baseada em linguagens. Precisamos de uma definição mais objetiva e ampla. Uma linguagem é composta de de palavras que formam um alfabeto. da Computação Aspectos Teóricos 2
  • 3. Albabeto Um alfabeto é um conjunto finito de símbolos ou caracteres. Portanto: ● Um conjunto infinito não é um alfabeto; ● o conjunto vazio é um alfabeto. Exemplo: {a,b,c} ou {} são alfabetos N não é um alfabeto {a,b,aa,ab,bb,ba,bb....} não é um alfabeto Aspectos Teóricos da Computação 3
  • 4. Alfabeto de uma Linguagem de Programação O alfabeto de uma linguagem de programação como Pascal é o conjunto de todos os símbolos usados na construção de programas, incluindo letras, dígitos, caracteres especiais, espaço. Aspectos Teóricos da Computação 4
  • 5. Palavra Uma Palavra, Cadeia de Caracteres ou Sentença sobre um alfabeto é uma sequência finita de símbolos do alfabeto justapostos. O símbolo ε denota a palavra ou cadeia vazia. Aspectos Teóricos da Computação 5
  • 6. Prefixo, Sufixo e Subpalavra Um Prefixo ou Sufixo de uma palavra é qualquer sequência inicial respectivamente final de símbolos da palavra. Uma Subpalavra é qualquer sequência de símbolos contíguos da palavra. Exemplos: abcb é uma palavra do alfabeto {a,b,c} Relativamente à palavra abcb, vale que: ε , a, ab, abc, abcb são todos os prefixos; ε, b, cb, bcb, abcb são todos os sufixo; Qualquer prefixo ou sufixo é uma subpalavra; Aspectos Teóricos da Computação 6
  • 7. Palavra: Linguagem de Programação Em uma linguagem de programação como Pascal, uma palavra é um programa. Aspectos Teóricos da Computação 7
  • 8. Concatenação A Concatenação de Palavras ou simplesmente Concatenação é uma operação binária definida sobre um conjunto de palavras, a qual associa a cada par de palavras uma palavra formada pela justaposição de primeira com a segunda. Propriedades suponha v,w,t palavras quaisquer a) Associativa. v(wt) = (vw)t b) Elemento neutro. εw = wε Exemplo: Suponha o alfabeto Σ = {a,b}. Então, para as palavras v = baaaa e w = bb vale que: vw = baaaabb vε = baaaa Concatenação sucessiva de uma palavra.. Se w = a o que seria w5? Aspectos Teóricos da Computação 8
  • 9. Concatenação Sucessiva A Concatenação Sucessiva é representada na forma de um expoente, wn onde n representa o número de concatenações sucessivas é definida indutivamente a partir da operação de concatenção binária, como segue: w0 = ε wn = wwn-1 n>0 Exemplo Seja w uma palavra e a um símbolo, Então: w3 = www w1 = w a5 = aaaaa an = aaaa..a (o símbolo repetido n vezes) Aspectos Teóricos da Computação 9
  • 10. Alfabeto Se Σ representa o alfabeto, então: Σ* denota o conjunto de todas as palavras possíveis sobre Σ. Σ+ denota Σ* - {ε } Conjunto de todas as palavras. Seja Σ um alfabeto. Então o conjunto de toda as palavras Σ* é indutivamente definido como segue: a. Base da indução: ε є Σ* para qualquer x є ∑, vale x є ∑* b. Passo da indução: Se u e v são palavras de ∑* então a concatenação uv é uma palavra de ∑* Aspectos Teóricos da Computação 10
  • 11. Exemplo: Conjunto de todas as palavras ● Se ∑ = {a,b}, então: ● ∑+ = {a,b,aa,ab,ba,bb,aaa,...} ● ∑* = {ε, a,b,aa,ab,ba,bb,aaa,...} Aspectos Teóricos da Computação 11
  • 12. Comprimento, tamanho de uma palavra ● O comprimento ou Tamanho de uma palavra w, representado por |w|, é o número de símbolos que compõem a palavra. Portanto, para um dado alfabeto ∑ , comprimento é uma função com domínio em ∑* e codomínio em N. a. |abc| = 3 b. | ε | = 0 Aspectos Teóricos da Computação 12
  • 13. Linguagem Formal Uma linguagem formal ou simplesmente Linguagem L sobre um alfaberto ∑ é um conjunto de palavras sobre ∑, ou seja: L ⊆ ∑* Aspectos Teóricos da Computação 13
  • 14. Exemplo de Linguagem Formal ● O conjunto Ø e o conjunto formado pela palavra vazia { ε } são linguagens sobre qualquer alfabeto. Obviamente, vale que: Ø≠{ε} ● Os conjuntos ∑* e ∑+ são linguagens sobre um alfabeto ∑ qualquer. Obviamente, vale que: ∑* ≠ ∑+ Aspectos Teóricos da Computação 14
  • 15. Exercício ● Suponha o alfabeto ∑ = {a,b}. Então, o conjunto de palíndromos (palavras que tem a mesma leitura da esquerda para a direita e vice-versa) sobre ∑ é um exemplo de linguagem infinita. Quais são os elementos dessa linguagem? Aspectos Teóricos da Computação 15
  • 16. Exemplo de Linguagem Formal ● Suponha o alfabeto ∑ = {a,b}. Então, o conjunto de palíndromos (palavras que tem a mesma leitura da esquerda para a direita e vice-versa) sobre ∑ é um exemplo de linguagem infinita. Assim, são palavras dessa linguagem: , a, b, aa, bb, aaa, aba, bab, bbb, aaa, ... Aspectos Teóricos da Computação 16
  • 17. Exemplo: Linguagem Formal: Linguagem de Programação ● Um linguagem de programação como C é formalmente definida pelo conjunto de todos os programas (palavras) da linguagem. Aspectos Teóricos da Computação 17
  • 18. Gramática Como definir todos os programas de uma determinada linguagem se torna inviável pois é infinito criou-se uma nova maneira de especificar linguagem de maneira finita, a gramática. Uma gramática é, basicamente, um conjunto finito de regras as quais, quando aplicadas sucessivamente, geram palavras. O conjunto de todas a palavras geradas por uma gramática define as linguagens. Aspectos Teóricos da Computação 18
  • 19. Gramática Exemplo de Gramática: S→A A→0A1 A→ε Uma gramática consiste de uma coleção de regras que especificam como derivar strings de uma linguagem. As regras de produção envolvem símbolos da linguagem (ou terminais) e variáveis (ou símbolos não-terminais), que representam conjuntos de strings. Uma das variáveis é distinguida como símbolo inicial. Aspectos Teóricos da Computação 19
  • 20. Exemplo de Derivação de String Seja G1 a seguinte gramática: S→A A → 0A1 A →ε Exemplo de derivação de string usando G1 : S ⇒ A ⇒ 0A1 ⇒ 00A11 ⇒ 000A111 ⇒ 000111 A sequência de substituições é chamada de derivação. O conjunto de todos os strings de terminais gerados desta forma constitui a linguagem especificada pela gramática. Escrevemos L(G) para denotar a linguagem gerada pela gramática G. Portanto, L(G1 ) = {0n1n | n ≥ 0 } 000111 é chamada de string terminal pois não tem como substituir mais nenhuma variável nela. Aspectos Teóricos da Computação 20
  • 21. Gramática Uma gramática de Chomsky, Gramática Irrestrita ou simplesmente Gramática é uma quadrupla ordenada: G = {V, ∑,P,S} na qual: a. V, um conjunto finito de símbolos variáveis ou não terminais; b. ∑, um conjunto finito de símbolos terminais ou constantes disjunto de V; c. P: (V U ∑ )+ → (V U ∑ )* é uma relação finita (ou seja, P é um conjunto finito de pares), denominada de Relação de Produções ou simplesmente produções. Cada par da relação é denominado de regra de produção ou simplesmente produção; P pode ser considerada a função que leva um elemento x a um elemento y. d. S, um elemento distinguido de V denominado símbolo inicial ou variável inicial. Aspectos Teóricos da Computação 21
  • 22. Exemplo de Gramática G = ({S, A}, {0, 1}, R, S) onde R: S→A A → 0A1 A→ε Aspectos Teóricos da Computação 22
  • 23. Exercício de Gramática Formule uma outra gramática baseada na gramática do exemplo G = ({S, A}, {0, 1}, R, S) onde R: S→A A → 0A1 A→ε 15 minutos em grupo Aspectos Teóricos da Computação 23
  • 24. Derivação ● Se u, v , w ∈ (V ∪ ∑ )∗ (i.e., são strings de variáveis e terminais) e α → β ∈ R (i.e., é uma regra da gramática) então dizemos que uαv deriva uβv, escrito como uαv ⇒ uβv . ● Podemos também dizer que uβv é derivado diretamente de uαv usando a regra α → β ● u ⇒k v se existe uma sequência finita u0 , u1 , . . . , uk ∈ (V ∪ ∑ )∗ , para k > 0, tal que u = u 0 ⇒ u1 ⇒ . . . ⇒ u k = v ● Também dizemos que u0 , u1 , . . . , uk é uma derivação de v a partir de u ● Escrevemos u ⇒∗ v se u = v ou u ⇒k v para algum k > 0 Aspectos Teóricos da Computação 24
  • 25. Linguagem Especificada por uma Gramática Seja G = (V , Σ, R, S) uma gramática. A linguagem especificada por G é L(G) = {w ∈ Σ∗ | S ⇒∗ w } Aspectos Teóricos da Computação 25
  • 26. Tipos de Regras Aspectos Teóricos da Computação 26
  • 27. Tipos de Gramática – Hierarquia de Chomsky Aspectos Teóricos da Computação 27
  • 28. Notação Para distinguir não-terminais de terminais, frequentemente usamos não-terminais entre < > e terminais entre aspas ” ”. Se duas ou mais regras têm o mesmo lado esquerdo, por exemplo: A → 0A1 e A →ε podemos escrever, de forma mais compacta A → 0A1 | ε. Obs. Só use essa regra quando tudo estiver muito claro na sua cabeça. Aspectos Teóricos da Computação 28
  • 29. Gramática Livre de Contexto G2 A gramática G2 a seguir especifica um fragmento da língua inglesa: <SENTENCE> → <NOUN_PHRASE><VERB_PHRASE> <NOUN_PHRASE> → <CP_NOUN> | <CP_NOUN><PREP_PHRASE> <VERB_PHRASE> → <CP_VERB> | <CP_VERB><PREP_PHRASE> <PREP_PHRASE> → <PREP><CP_NOUN> <CP_NOUN> → <ARTICLE><NOUN> <CP_VERB> → <VERB> | <VERB><NOUN_PHRASE> <ARTICLE> → a | the <NOUN> → boy | girl | flower <VERB> → touches | likes | sees <PREP> → with Aspectos Teóricos da Computação 29
  • 30. Gramática Livre de Contexto G2 Note que: A CFG(Gramática livre de contexto) G2 tem 10 variáveis (escritas em letras maiúsculas e entra < >) e 9 não-terminais (escritos no alfabeto padrão), mais um caractere de espaço. A CFG G2 tem 18 regras. Exemplos de strings que pertencem a L(G2): a boy sees the boy sees a flower a girl with a flower likes the boy Aspectos Teóricos da Computação 30
  • 31. Exemplo de Derivação em G2 <SENTENCE> ⇒ <NOUN_PHRASE><VERB_PHRASE> ⇒ <CP_NOUN><VERB_PHRASE> ⇒ <ARTICLE><NOUN><VERB_PHRASE> ⇒ a <NOUN><VERB_PHRASE> ⇒ a boy <VERB_PHRASE> ⇒ a boy <CP_VERB> ⇒ a boy <VERB> ⇒ a boy sees Aspectos Teóricos da Computação 31
  • 32. Regras Lineares Seja G = (V , Σ, R, S) uma CFG e A → w ∈ R, onde A ∈ V . ● r é linear se w ∈ Σ∗VΣ∗ ● r é linear à direita se w ∈ Σ∗V ● r é linear à esquerda se w ∈ VΣ∗ ● r é terminal se w ∈ Σ∗ Aspectos Teóricos da Computação 32
  • 33. Exemplo de Gramática Linear à Direita G = ({A, B}, {0, 1}, {A → 0A | B, B → 1B | ε }, A) Aspectos Teóricos da Computação 33
  • 34. Exemplo de Gramática Linear à Direita G = ({A, B}, {0, 1}, {A → 0A | B, B → 1B | ε}, A) Exemplo de derivação em G: A ⇒ 0A ⇒ 00A ⇒ 00B ⇒ 001B ⇒ 0011B ⇒ 00111B ⇒ 00111 ● Qual é a linguagem especificada por G? Aspectos Teóricos da Computação 34
  • 35. Exemplo de Gramática Linear à Direita G = ({A, B}, {0, 1}, {A → 0A | B, B → 1B | ε}, A) Exemplo de derivação em G: A ⇒ 0A ⇒ 00A ⇒ 00B ⇒ 001B ⇒ 0011B ⇒ 00111B ⇒ 00111 ● Qual é a linguagem especificada por G? L(G) = 0*1* Aspectos Teóricos da Computação 35
  • 36. Para a Próxima Aula Ler capítulo 2 do livro texto. Aspectos Teóricos da Computação 36