SlideShare uma empresa Scribd logo
1 de 26
Baixar para ler offline
Curso: Ciência da Computação
          Turma: 7ª Série


 Linguagens Formais e Autômatos

             Aula 7

Aspectos Teóricos da Computação
Notas de Aula
Avaliação 15 de Abril.




                 Aspectos Teóricos da Computação   2/26
Linguagens Regulares
●   O estudo das linguagens regulares é abordado
    usando os seguintes formalismos:
    ➔   Autômato Finito. Trata-se de um formalismo
        operacional ou reconhecedor, sendo basicamente,
        um sistema de estados finitos;
    ➔   Expressão Regular. Trata-se de um formalismo
        denotacional, também considerado gerador, o qual
        é definido a partir de conjuntos (linguagens)
        básicos e das operações de concatenação e de
        união;
    ➔   Gramática Regular. Trata-se de um formalismo
        axiomático ou gerador o que, como o nome indica,
        é uma gramática, mas com restrições de forma das
        regras de produção.
                     Aspectos Teóricos da Computação   3/26
Expressão Regular
●   Toda linguagem regular pode ser descrita por uma
    expressão denominada Expressão Regular.
●   Uma expressão regular é definida a partir de
    conjuntos básicos (linguagens) e operações de
    concatenação e de união.
●   As expressões regulares são consideradas
    adequadas para a comunicação humano x humano e,
    principalmente, para a comunicação humano x
    máquina.
●   A expressão regular é a maneira mais compacta e
    mais simples de descrever conjuntos regulares, e é
    usada com essa finalidade em construção de
    compiladores, editores, sistemas operacionais,
    protocolos, etc.
                    Aspectos Teóricos da Computação      4/26
Expressão Regular, Linguagem Gerada
Uma Expressão Regular (frequentemente abreviada por ER) sobre um alfabeto ∑ é indutivamente
definida como segue:
a) Base de Indução.
     a.1) A expressão :
                         Ø é expressão regular e denota a linguagem vazia.
     a.2) A expressão:
                         ε é uma expressão regular e denota a linguagem que contém
exclusivamente a palavra vazia: {ε}
     a.3) Para qualquer símbolo x Є ∑, a expressão:
                         X é uma expressão regular e denota a linguagem que contém
exclusivamente a palavra constituída pelo símbolo x: {x}

b) Passo de Indução. Se r e s são expressões regulares e denotam a linguagem R e S,
respectivamente, então:
     b.1) União. A expressão (r+s) é expressão regular e denota a linguagem R U S
     b.2) Concatenação. A expressão (rs) é expressão regular e denota a linguagem: R S = {uv | u Є
 R e v Є S}
    b.3) Concatenação sucessiva. A expressão    (r*) é expressão regular e denota a linguagem R*

Se r é uma expressão regular, a correspondente linguagem denotada é dita a Linguagem Gerada
por r, sendo representada por:
                                        L(r) ou GERA(R)


                                  Aspectos Teóricos da Computação                             5/26
Expressão Regular, Linguagem Gerada
A omissão de parênteses em uma ER é usual, respeitando
as seguintes convenções:
●   A concatenação sucessiva tem precedência sobre a
    concatenação e a união;
●   A concatenação tem precedência sobre a união.




                     Aspectos Teóricos da Computação     6/26
Expressão Regular
Detalhando a linguagem gerada pela expressão (a+b)*(aa+bb),
vale que:
   ●   a e b denotam {a} e {b}, respectivamente
   ●   a + b denota {a} U {b} = {a,b} (Lembre-se que o elemento
       vazio também está aqui.)
   ●   (a+b)* denota {a,b}*
   ●   aa e bb denotam {a}{a} = {aa} e {b}{b} = {bb},
       respectivamente
   ●   (aa + bb) denota {aa} U {bb} = {aa,bb}
   ●   (a+b)*(aa+bb) denota {a,b}*{aa,bb}
Portanto, GERA((a+b)*(aa+bb)) correponde à seguinte linguagem:
{aa,bb,aaa,abb,baa,bbb,aaaa,aabb,abaa,abbb,baaa,babb,bbaa,bb
bb,...}

                        Aspectos Teóricos da Computação           7/26
Exemplo: Expressão Regular
Expressão Regular            Linguagem Gerada

aa                           Somente a palavra aa

ba*                          Todas as palavras que iniciam por b, seguido por
                             zero ou mais a's


(a+b)*                       Todas as palavras sobre {a,b}

(a+b)*aa(a+b)*               Todas as palavras contendo aa como subpalavra

a*ba*ba*                     Todas as palavras contendo exatamente dois b's

(a+b)*(aa+bb)                Todas as palavras que terminam com aa ou bb.

(a+ε)(b+ba)*                 Todas as palavras que não possuem dois a
                             consecutivos.




                    Aspectos Teóricos da Computação                       8/26
Expressão Regular → Linguagem Regular
Por definição, uma linguagem regular é regular
se, e somente se, é possível construir um
autômato finito (determinístico, não determinístico
ou de movimentos vazios) que reconheça essa
linguagem. Assim, dada uma expressão regular r
qualquer é possível construir um autômato finito.




                 Aspectos Teóricos da Computação   9/26
Expressão Regular            Autômato Finito Correspondente


a                                          a
b                                          b

a*                                                    ε
                                            ε         a   ε
                                                      ε

aa
                                            a         ε   a

bb                               Єε         b         ε   b

aa+bb                                       a         ε   a
                                      ε                       ε


                                      ε                       ε
                                            b         ε   b




                    Aspectos Teóricos da Computação               10/26
ER convertida para Autômato
            a*(aa+bb)



                                        a     ε   a
                                ε                     ε
        ε
ε       a        ε
        ε                       ε                     ε
                                        b     ε   b




            Aspectos Teóricos da Computação               11/26
Gramática Regular
Gramáticas Lineares
Seja G={V,T,P,S} uma gramática. Sejam A e B elementos de V e w uma palavra de T*.
Então G é uma Gramática Linear se todas as suas produções encontram-se em uma e
em somente uma das seguintes formas:
a) Gramática Linear à Direita (abreviada por GLD). Todas as regras de produção são da
forma:
             A → wB ou       A→w
b) Gramática Linear à Esquerda (abreviada por GLE). Todas as regras de produção são
da forma:
             A → Bw     ou   A→w
c) Gramática Linear Unitária à Direita (abreviada por GLUD). Todas as regras de
produção são como na gramática linear à direita e, adicionalmente:
             |w| <= 1
d) Gramática Linear Unitária à Esquerda (abreviada por GLUE). Todas as regras de
produção são como na gramática linear à esquerda e, adicionalmente:
             |w| <=1

                              Aspectos Teóricos da Computação                      12/26
Gramática Regular
Note-se que, nas gramáticas lineares, o lado direito de uma produção é constituído por,
no máximo, uma variável. Adicionalmente, esta variável, se existir, sempre antecede
(linear à esquerda) ou sucede (linear à direita) qualquer sub-palavra (eventualmente
vazia) de terminais.




                               Aspectos Teóricos da Computação                      13/26
Equivalência das Gramáticas Regulares
Seja L uma linguagem. Então:
    L é gerada por uma GLD se, e somente se,
    L é gerada por uma GLE se, e somente se,
    L é gerada por uma GLUD se, e somente se,
    L é gerada por uma GLUE

●   Ou seja, as diversas formas das gramáticas
    lineares são formalismos equivalentes.



                  Aspectos Teóricos da Computação   14/26
Gramática Regular
Uma gramática G é dita uma Gramática Regular,
eventualmente abreviada GR, se G é uma
gramática linear.




                Aspectos Teóricos da Computação   15/26
Linguagem Gerada
Seja G=(V, T, P, S) uma gramática. A Linguagem
Gerada pela gramática G, denotada por:
     L(G) ou GERA(G)
É tal que:
     L(G) = {w є T* | S → +w}




                 Aspectos Teóricos da Computação   16/26
Exemplo: Gramática Regular: a(ba)*
A linguagem a(ba)* é gerada pelas seguintes gramáticas regulares:
 (a) Linear à Direita. G=({S,A}, {a,b}, P, S), e P possui as seguintes
    regras de produção
    S → aA
    A → baA | ε
 (b) Linear à Esquerda. G=({S}, {a,b}, P, S), e P possui as seguintes
    regras de produção
    S → Sba | a
 (c)Linear Unitária à Direita. G=({S,A,B}, {a,b}, P, S), e P possui as
    seguintes regras de produção
    S → aA
    A → bB | ε
    B → aA
 (d)Linear Unitária à Esquerda. G=({S,A}, {a,b}, P, S), e P possui as
    seguintes regras de produção
    S → Aa | a
    A → Sb

                          Aspectos Teóricos da Computação                17/26
Gramática Regular: (a+b)*(aa+bb)
A linguagem (a+b)*(aa+bb) é gerada pelas
seguintes gramáticas regulares:
(a) Linear à Direita. G=({S,A}, {a,b}, P, S), e P
  possui as seguintes regras de produção
  S → aS | bS | A
  A → aa | bb
(b) Linear à Esquerda. G=({S}, {a,b}, P, S), e P
  possui as seguintes regras de produção
  S → Aaa | Abb
  A → Aa | Ab | ε
                    Aspectos Teóricos da Computação   18/26
Gramática Linear à Esquerda e Linear à Direita

Suponha |w| >= 1. Se uma gramática tiver
simultaneamente produções do tipo A → wB
(linear à direita) e do tipo A → Bw (linear a
esquerda), então a correspondente linguagem
gerada poderá não ser regular, ou seja, esta não
é uma gramática regular.
Por exemplo, a linguagem a seguir não é regular:
    { anbn | n є N }
Entretanto, é possível desenvolver uma
gramática, com produções lineares à direita e à
esquerda, que gera esta linguagem.

                  Aspectos Teóricos da Computação   19/26
Gramática Regular → Linguagem Regular
Se L é uma linguagem gerada por uma gramática regular, então L é uma linguagem
regular.
Prova: Por indução
Para mostrar que uma linguagem é regular, é suficiente construir um autômato finito que
a reconheça.
Suponha G=(V,T,P,S) uma gramática linear unitária à direita. Tipo da     Transição
Então o AFNε : M=( ∑, Q,δ,q0, F)                             Produção    Gerada
Tal que: (suponha qf não pertence a V):                          A→ε       δ(A,ε) = qf
∑=T
                                                                 A→a       δ(A,a) = qf
Q = V U {qf}
F = {qf}                                                         A→B       δ(A,ε) = B
q0 = S                                                           A → aB    δ(A,a) = B
δ é construída como ilustrado na tabela (Suponha A e B variáveis e a terminal) simula as
derivações de G, ou seja:
         ACEITA(M) = GERA(G)

A demonstração que, de fato, ACEITA(M) = GERA(G) é por indução no número de
derivações. (Vamos omitir essa demonstração mas ela pode ser vista na página 77 do
livro texto.)


                               Aspectos Teóricos da Computação                      20/26
Exemplo: Construção de um AFNε a partir de uma
                    gramática regular
Considere a seguinte gramática linear unitária à direita,

         G=({S,A,B},{a,b},P,S) onde P é tal que:

         S → aA
         A → bB | ε
         B → aA

O AFNε que reconhece a linguagem gerada pela gramática G é:

5 minutos para fazer.




                                Aspectos Teóricos da Computação   21/26
Exemplo: Construção de um AFNε a partir de uma
                    gramática regular
Considere a seguinte gramática linear unitária à direita,

         G=({S,A,B},{a,b},P,S) onde P é tal que:

         S → aA
         A → bB | ε
         B → aA

O AFNε que reconhece a linguagem gerada pela gramática G é:

         M = ({a,b}, {S,A,B,qf},δ,S,{qf})

   Produção    Transição
   S → aA      δ(S,a) = A                                     S    a       A       ε   qf
   A → bB      δ(A,b) = B
   A→ε         δ(A,ε) = qf                                             b       a
   B → aA      δ(B,a) = A
                                                                           B


                                 Aspectos Teóricos da Computação                       22/26
Construção de uma Gramática Regular a partir de um
                      AFD
Considere o autômato finito determinístico:
     M = ({a,b,c}, {q0,q1,q2},δ,q0,{q0,q1,q2})
          q0     b     q1      c      q2
           a            b             c


A gramática correspondente regular construída é?


5 minutos.




                     Aspectos Teóricos da Computação   23/26
Construção de uma Gramática Regular a partir de um
                      AFD
Considere o autômato finito
determinístico:
      M = ({a,b,c}, {q0,q1,q2},δ,q0,
{q0,q1,q2})
                                                        Transição    Produção
      q0     b   q1    c      q2                        -            S → q0
      a          b             c                        -            q0 → ε
                                                        -            q1 → ε

A gramática correspondente                              -            q2 → ε

regular construída é?                                   δ(q0,a)=q0   q0 → aq0
                                                        δ(q0,b)=q1   q0 → bq1
G = ({q0,q1,q2,S}, {a,b,c}, P,S)                        δ(q1,b)=q1   q1 → bq1

onde P é dado pela tabela:                              δ(q1,c)=q2   q1 → cq2
                                                        δ(q2,c)=q2   q2 → cq2
                      Aspectos Teóricos da Computação                         24/26
Ler
●   Seçao 3.6 do livro.




                   Aspectos Teóricos da Computação   25/26
Exercícios
1.   (Exercício 3.7 do livro) Desenvolva expressões regulares que gerem as seguintes linguagens sobre
     ∑ = {a,b}:

      (a) {w | w tem no máximo um par de a como subpalavra e no máximo um par de b como subpalavra.
      (b) {w | qualquer para de a antecede qualquer par de b}
      (c) {w | w não possui aba como subpalavra}
2.   Descreva em palavras as linguagens geradas pelas seguintes expressões regulares:

      (a) (aa+b)*(a+bb)
      (b) (b+ab)*(ε +a)
      (c) (aa +bb + (aa+bb) (ab+ba)(aa+bb))*




                                      Aspectos Teóricos da Computação                                 26/26

Mais conteúdo relacionado

Mais procurados

57701066 matematica-discreta-exercicios-resolvidos
57701066 matematica-discreta-exercicios-resolvidos57701066 matematica-discreta-exercicios-resolvidos
57701066 matematica-discreta-exercicios-resolvidos
HAROLDO MIRANDA DA COSTA JR
 
Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)
Armando Daniel
 
Apostila Linguagens Formais e Autômatos (LFA)
Apostila Linguagens Formais e Autômatos (LFA)Apostila Linguagens Formais e Autômatos (LFA)
Apostila Linguagens Formais e Autômatos (LFA)
Ricardo Terra
 
Gráfico (seno e cosseno)
Gráfico (seno e cosseno)Gráfico (seno e cosseno)
Gráfico (seno e cosseno)
neliosnahum
 
Árvores: Conceitos e binárias
Árvores:  Conceitos e bináriasÁrvores:  Conceitos e binárias
Árvores: Conceitos e binárias
Sérgio Souza Costa
 

Mais procurados (20)

Problema da Mochila 0-1 (Knapsack problem)
Problema da Mochila 0-1 (Knapsack problem)Problema da Mochila 0-1 (Knapsack problem)
Problema da Mochila 0-1 (Knapsack problem)
 
Análise de Algoritmos - Solução de Recorrências
Análise de Algoritmos - Solução de RecorrênciasAnálise de Algoritmos - Solução de Recorrências
Análise de Algoritmos - Solução de Recorrências
 
Algoritmo - tipos de dados
Algoritmo - tipos de dadosAlgoritmo - tipos de dados
Algoritmo - tipos de dados
 
Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java
 
Lógica de Programação - Estruturas de Seleção
Lógica de Programação - Estruturas de SeleçãoLógica de Programação - Estruturas de Seleção
Lógica de Programação - Estruturas de Seleção
 
Conjunto de instruções mips - instruções de desvio
Conjunto de instruções mips - instruções de desvioConjunto de instruções mips - instruções de desvio
Conjunto de instruções mips - instruções de desvio
 
Recursividade
RecursividadeRecursividade
Recursividade
 
Análise de Algoritmos - Análise Assintótica
Análise de Algoritmos - Análise AssintóticaAnálise de Algoritmos - Análise Assintótica
Análise de Algoritmos - Análise Assintótica
 
Cálculo Proposicional - Exemplo
Cálculo Proposicional - ExemploCálculo Proposicional - Exemplo
Cálculo Proposicional - Exemplo
 
57701066 matematica-discreta-exercicios-resolvidos
57701066 matematica-discreta-exercicios-resolvidos57701066 matematica-discreta-exercicios-resolvidos
57701066 matematica-discreta-exercicios-resolvidos
 
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
 
Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)
 
Apostila Linguagens Formais e Autômatos (LFA)
Apostila Linguagens Formais e Autômatos (LFA)Apostila Linguagens Formais e Autômatos (LFA)
Apostila Linguagens Formais e Autômatos (LFA)
 
Lógica e Matemática Computacional - Exercícios 02
Lógica e Matemática Computacional - Exercícios 02Lógica e Matemática Computacional - Exercícios 02
Lógica e Matemática Computacional - Exercícios 02
 
Expressões Regulares: Teoria e Prática
Expressões Regulares: Teoria e PráticaExpressões Regulares: Teoria e Prática
Expressões Regulares: Teoria e Prática
 
Gráfico (seno e cosseno)
Gráfico (seno e cosseno)Gráfico (seno e cosseno)
Gráfico (seno e cosseno)
 
Algoritmos 1 - Semana 2
Algoritmos 1 - Semana 2Algoritmos 1 - Semana 2
Algoritmos 1 - Semana 2
 
Árvores: Conceitos e binárias
Árvores:  Conceitos e bináriasÁrvores:  Conceitos e binárias
Árvores: Conceitos e binárias
 
Hierarquia de Chomsky
Hierarquia de ChomskyHierarquia de Chomsky
Hierarquia de Chomsky
 
#4 Primeiros comandos no MongoDB
#4   Primeiros comandos no MongoDB#4   Primeiros comandos no MongoDB
#4 Primeiros comandos no MongoDB
 

Mais de wab030

Hp0061
Hp0061Hp0061
Hp0061
wab030
 
Notas b2redes
Notas b2redesNotas b2redes
Notas b2redes
wab030
 
Notas info+banco
Notas info+bancoNotas info+banco
Notas info+banco
wab030
 
Aula 10 camada de rede
Aula 10   camada de redeAula 10   camada de rede
Aula 10 camada de rede
wab030
 
Aula 12 revisãodos exercícios
Aula 12   revisãodos exercíciosAula 12   revisãodos exercícios
Aula 12 revisãodos exercícios
wab030
 
Aula 10 maquinade turing
Aula 10   maquinade turingAula 10   maquinade turing
Aula 10 maquinade turing
wab030
 
Wireshark ip sept_15_2009
Wireshark ip sept_15_2009Wireshark ip sept_15_2009
Wireshark ip sept_15_2009
wab030
 
Aula 10 camada de rede
Aula 10   camada de redeAula 10   camada de rede
Aula 10 camada de rede
wab030
 
Aula 9 conceitos gerais de Rede
Aula 9   conceitos gerais de RedeAula 9   conceitos gerais de Rede
Aula 9 conceitos gerais de Rede
wab030
 
Wireshark UDP
Wireshark UDPWireshark UDP
Wireshark UDP
wab030
 
Notas b1 redes
Notas b1 redesNotas b1 redes
Notas b1 redes
wab030
 
Notas b1 info+banco
Notas b1 info+bancoNotas b1 info+banco
Notas b1 info+banco
wab030
 

Mais de 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 12 revisãodos exercícios
Aula 12   revisãodos exercíciosAula 12   revisãodos exercícios
Aula 12 revisãodos exercícios
 
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
 

Último

Slide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticaSlide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemática
sh5kpmr7w7
 
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
 

Último (20)

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
 
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
 
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
 
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
 
Slide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticaSlide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemática
 
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*
 
Produção de Texto - 5º ano - CRÔNICA.pptx
Produção de Texto - 5º ano - CRÔNICA.pptxProdução de Texto - 5º ano - CRÔNICA.pptx
Produção de Texto - 5º ano - CRÔNICA.pptx
 
aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.ppt
 
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...
 
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdfPROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
 
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
 
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...
 
M0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptxM0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptx
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
 
Texto dramático com Estrutura e exemplos.ppt
Texto dramático com Estrutura e exemplos.pptTexto dramático com Estrutura e exemplos.ppt
Texto dramático com Estrutura e exemplos.ppt
 
Cartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxCartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptx
 
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfPROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
 
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
 
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
 
Camadas da terra -Litosfera conteúdo 6º ano
Camadas da terra -Litosfera  conteúdo 6º anoCamadas da terra -Litosfera  conteúdo 6º ano
Camadas da terra -Litosfera conteúdo 6º ano
 

Aula 7 expressão regular

  • 1. Curso: Ciência da Computação Turma: 7ª Série Linguagens Formais e Autômatos Aula 7 Aspectos Teóricos da Computação
  • 2. Notas de Aula Avaliação 15 de Abril. Aspectos Teóricos da Computação 2/26
  • 3. Linguagens Regulares ● O estudo das linguagens regulares é abordado usando os seguintes formalismos: ➔ Autômato Finito. Trata-se de um formalismo operacional ou reconhecedor, sendo basicamente, um sistema de estados finitos; ➔ Expressão Regular. Trata-se de um formalismo denotacional, também considerado gerador, o qual é definido a partir de conjuntos (linguagens) básicos e das operações de concatenação e de união; ➔ Gramática Regular. Trata-se de um formalismo axiomático ou gerador o que, como o nome indica, é uma gramática, mas com restrições de forma das regras de produção. Aspectos Teóricos da Computação 3/26
  • 4. Expressão Regular ● Toda linguagem regular pode ser descrita por uma expressão denominada Expressão Regular. ● Uma expressão regular é definida a partir de conjuntos básicos (linguagens) e operações de concatenação e de união. ● As expressões regulares são consideradas adequadas para a comunicação humano x humano e, principalmente, para a comunicação humano x máquina. ● A expressão regular é a maneira mais compacta e mais simples de descrever conjuntos regulares, e é usada com essa finalidade em construção de compiladores, editores, sistemas operacionais, protocolos, etc. Aspectos Teóricos da Computação 4/26
  • 5. Expressão Regular, Linguagem Gerada Uma Expressão Regular (frequentemente abreviada por ER) sobre um alfabeto ∑ é indutivamente definida como segue: a) Base de Indução. a.1) A expressão : Ø é expressão regular e denota a linguagem vazia. a.2) A expressão: ε é uma expressão regular e denota a linguagem que contém exclusivamente a palavra vazia: {ε} a.3) Para qualquer símbolo x Є ∑, a expressão: X é uma expressão regular e denota a linguagem que contém exclusivamente a palavra constituída pelo símbolo x: {x} b) Passo de Indução. Se r e s são expressões regulares e denotam a linguagem R e S, respectivamente, então: b.1) União. A expressão (r+s) é expressão regular e denota a linguagem R U S b.2) Concatenação. A expressão (rs) é expressão regular e denota a linguagem: R S = {uv | u Є R e v Є S} b.3) Concatenação sucessiva. A expressão (r*) é expressão regular e denota a linguagem R* Se r é uma expressão regular, a correspondente linguagem denotada é dita a Linguagem Gerada por r, sendo representada por: L(r) ou GERA(R) Aspectos Teóricos da Computação 5/26
  • 6. Expressão Regular, Linguagem Gerada A omissão de parênteses em uma ER é usual, respeitando as seguintes convenções: ● A concatenação sucessiva tem precedência sobre a concatenação e a união; ● A concatenação tem precedência sobre a união. Aspectos Teóricos da Computação 6/26
  • 7. Expressão Regular Detalhando a linguagem gerada pela expressão (a+b)*(aa+bb), vale que: ● a e b denotam {a} e {b}, respectivamente ● a + b denota {a} U {b} = {a,b} (Lembre-se que o elemento vazio também está aqui.) ● (a+b)* denota {a,b}* ● aa e bb denotam {a}{a} = {aa} e {b}{b} = {bb}, respectivamente ● (aa + bb) denota {aa} U {bb} = {aa,bb} ● (a+b)*(aa+bb) denota {a,b}*{aa,bb} Portanto, GERA((a+b)*(aa+bb)) correponde à seguinte linguagem: {aa,bb,aaa,abb,baa,bbb,aaaa,aabb,abaa,abbb,baaa,babb,bbaa,bb bb,...} Aspectos Teóricos da Computação 7/26
  • 8. Exemplo: Expressão Regular Expressão Regular Linguagem Gerada aa Somente a palavra aa ba* Todas as palavras que iniciam por b, seguido por zero ou mais a's (a+b)* Todas as palavras sobre {a,b} (a+b)*aa(a+b)* Todas as palavras contendo aa como subpalavra a*ba*ba* Todas as palavras contendo exatamente dois b's (a+b)*(aa+bb) Todas as palavras que terminam com aa ou bb. (a+ε)(b+ba)* Todas as palavras que não possuem dois a consecutivos. Aspectos Teóricos da Computação 8/26
  • 9. Expressão Regular → Linguagem Regular Por definição, uma linguagem regular é regular se, e somente se, é possível construir um autômato finito (determinístico, não determinístico ou de movimentos vazios) que reconheça essa linguagem. Assim, dada uma expressão regular r qualquer é possível construir um autômato finito. Aspectos Teóricos da Computação 9/26
  • 10. Expressão Regular Autômato Finito Correspondente a a b b a* ε ε a ε ε aa a ε a bb Єε b ε b aa+bb a ε a ε ε ε ε b ε b Aspectos Teóricos da Computação 10/26
  • 11. ER convertida para Autômato a*(aa+bb) a ε a ε ε ε ε a ε ε ε ε b ε b Aspectos Teóricos da Computação 11/26
  • 12. Gramática Regular Gramáticas Lineares Seja G={V,T,P,S} uma gramática. Sejam A e B elementos de V e w uma palavra de T*. Então G é uma Gramática Linear se todas as suas produções encontram-se em uma e em somente uma das seguintes formas: a) Gramática Linear à Direita (abreviada por GLD). Todas as regras de produção são da forma: A → wB ou A→w b) Gramática Linear à Esquerda (abreviada por GLE). Todas as regras de produção são da forma: A → Bw ou A→w c) Gramática Linear Unitária à Direita (abreviada por GLUD). Todas as regras de produção são como na gramática linear à direita e, adicionalmente: |w| <= 1 d) Gramática Linear Unitária à Esquerda (abreviada por GLUE). Todas as regras de produção são como na gramática linear à esquerda e, adicionalmente: |w| <=1 Aspectos Teóricos da Computação 12/26
  • 13. Gramática Regular Note-se que, nas gramáticas lineares, o lado direito de uma produção é constituído por, no máximo, uma variável. Adicionalmente, esta variável, se existir, sempre antecede (linear à esquerda) ou sucede (linear à direita) qualquer sub-palavra (eventualmente vazia) de terminais. Aspectos Teóricos da Computação 13/26
  • 14. Equivalência das Gramáticas Regulares Seja L uma linguagem. Então: L é gerada por uma GLD se, e somente se, L é gerada por uma GLE se, e somente se, L é gerada por uma GLUD se, e somente se, L é gerada por uma GLUE ● Ou seja, as diversas formas das gramáticas lineares são formalismos equivalentes. Aspectos Teóricos da Computação 14/26
  • 15. Gramática Regular Uma gramática G é dita uma Gramática Regular, eventualmente abreviada GR, se G é uma gramática linear. Aspectos Teóricos da Computação 15/26
  • 16. Linguagem Gerada Seja G=(V, T, P, S) uma gramática. A Linguagem Gerada pela gramática G, denotada por: L(G) ou GERA(G) É tal que: L(G) = {w є T* | S → +w} Aspectos Teóricos da Computação 16/26
  • 17. Exemplo: Gramática Regular: a(ba)* A linguagem a(ba)* é gerada pelas seguintes gramáticas regulares: (a) Linear à Direita. G=({S,A}, {a,b}, P, S), e P possui as seguintes regras de produção S → aA A → baA | ε (b) Linear à Esquerda. G=({S}, {a,b}, P, S), e P possui as seguintes regras de produção S → Sba | a (c)Linear Unitária à Direita. G=({S,A,B}, {a,b}, P, S), e P possui as seguintes regras de produção S → aA A → bB | ε B → aA (d)Linear Unitária à Esquerda. G=({S,A}, {a,b}, P, S), e P possui as seguintes regras de produção S → Aa | a A → Sb Aspectos Teóricos da Computação 17/26
  • 18. Gramática Regular: (a+b)*(aa+bb) A linguagem (a+b)*(aa+bb) é gerada pelas seguintes gramáticas regulares: (a) Linear à Direita. G=({S,A}, {a,b}, P, S), e P possui as seguintes regras de produção S → aS | bS | A A → aa | bb (b) Linear à Esquerda. G=({S}, {a,b}, P, S), e P possui as seguintes regras de produção S → Aaa | Abb A → Aa | Ab | ε Aspectos Teóricos da Computação 18/26
  • 19. Gramática Linear à Esquerda e Linear à Direita Suponha |w| >= 1. Se uma gramática tiver simultaneamente produções do tipo A → wB (linear à direita) e do tipo A → Bw (linear a esquerda), então a correspondente linguagem gerada poderá não ser regular, ou seja, esta não é uma gramática regular. Por exemplo, a linguagem a seguir não é regular: { anbn | n є N } Entretanto, é possível desenvolver uma gramática, com produções lineares à direita e à esquerda, que gera esta linguagem. Aspectos Teóricos da Computação 19/26
  • 20. Gramática Regular → Linguagem Regular Se L é uma linguagem gerada por uma gramática regular, então L é uma linguagem regular. Prova: Por indução Para mostrar que uma linguagem é regular, é suficiente construir um autômato finito que a reconheça. Suponha G=(V,T,P,S) uma gramática linear unitária à direita. Tipo da Transição Então o AFNε : M=( ∑, Q,δ,q0, F) Produção Gerada Tal que: (suponha qf não pertence a V): A→ε δ(A,ε) = qf ∑=T A→a δ(A,a) = qf Q = V U {qf} F = {qf} A→B δ(A,ε) = B q0 = S A → aB δ(A,a) = B δ é construída como ilustrado na tabela (Suponha A e B variáveis e a terminal) simula as derivações de G, ou seja: ACEITA(M) = GERA(G) A demonstração que, de fato, ACEITA(M) = GERA(G) é por indução no número de derivações. (Vamos omitir essa demonstração mas ela pode ser vista na página 77 do livro texto.) Aspectos Teóricos da Computação 20/26
  • 21. Exemplo: Construção de um AFNε a partir de uma gramática regular Considere a seguinte gramática linear unitária à direita, G=({S,A,B},{a,b},P,S) onde P é tal que: S → aA A → bB | ε B → aA O AFNε que reconhece a linguagem gerada pela gramática G é: 5 minutos para fazer. Aspectos Teóricos da Computação 21/26
  • 22. Exemplo: Construção de um AFNε a partir de uma gramática regular Considere a seguinte gramática linear unitária à direita, G=({S,A,B},{a,b},P,S) onde P é tal que: S → aA A → bB | ε B → aA O AFNε que reconhece a linguagem gerada pela gramática G é: M = ({a,b}, {S,A,B,qf},δ,S,{qf}) Produção Transição S → aA δ(S,a) = A S a A ε qf A → bB δ(A,b) = B A→ε δ(A,ε) = qf b a B → aA δ(B,a) = A B Aspectos Teóricos da Computação 22/26
  • 23. Construção de uma Gramática Regular a partir de um AFD Considere o autômato finito determinístico: M = ({a,b,c}, {q0,q1,q2},δ,q0,{q0,q1,q2}) q0 b q1 c q2 a b c A gramática correspondente regular construída é? 5 minutos. Aspectos Teóricos da Computação 23/26
  • 24. Construção de uma Gramática Regular a partir de um AFD Considere o autômato finito determinístico: M = ({a,b,c}, {q0,q1,q2},δ,q0, {q0,q1,q2}) Transição Produção q0 b q1 c q2 - S → q0 a b c - q0 → ε - q1 → ε A gramática correspondente - q2 → ε regular construída é? δ(q0,a)=q0 q0 → aq0 δ(q0,b)=q1 q0 → bq1 G = ({q0,q1,q2,S}, {a,b,c}, P,S) δ(q1,b)=q1 q1 → bq1 onde P é dado pela tabela: δ(q1,c)=q2 q1 → cq2 δ(q2,c)=q2 q2 → cq2 Aspectos Teóricos da Computação 24/26
  • 25. Ler ● Seçao 3.6 do livro. Aspectos Teóricos da Computação 25/26
  • 26. Exercícios 1. (Exercício 3.7 do livro) Desenvolva expressões regulares que gerem as seguintes linguagens sobre ∑ = {a,b}: (a) {w | w tem no máximo um par de a como subpalavra e no máximo um par de b como subpalavra. (b) {w | qualquer para de a antecede qualquer par de b} (c) {w | w não possui aba como subpalavra} 2. Descreva em palavras as linguagens geradas pelas seguintes expressões regulares: (a) (aa+b)*(a+bb) (b) (b+ab)*(ε +a) (c) (aa +bb + (aa+bb) (ab+ba)(aa+bb))* Aspectos Teóricos da Computação 26/26