SlideShare una empresa de Scribd logo
1 de 263
Descargar para leer sin conexión
1




Disciplina de Linguagens Formais

    Prof. Carlos A. P. Campani

        2 de maio de 2006
2




Copyright c 2005 Carlos A. P. Campani.
´
E garantida a permiss˜o para copiar, distribuir e/ou
                       a
modificar este documento sob os termos da Licen¸a de
                                                  c
Documenta¸ao Livre GNU (GNU Free Documentation
            c˜
License), Vers˜o 1.2 ou qualquer vers˜o posterior
               a                     a
publicada pela Free Software Foundation; sem Se¸oes
                                                  c˜
Invariantes, Textos de Capa Frontal, e sem Textos de
Quarta Capa. Uma c´pia da licen¸a ´ inclu´ na se¸ao
                      o           c e      ıda       c˜
intitulada “GNU Free Documentation License”.
veja: http://www.ic.unicamp.br/~norton/fdl.html.
3




Objetivos
 • Formalizar o conceito de linguagem;
 • Apresentar uma classifica¸ao de linguagens baseada
                           c˜
   nesta formaliza¸ao;
                  c˜
 • Fornecer ferramentas para implementar compiladores;
 • Relacionar a hierarquia de linguagens com o conceito
   de computabilidade.
4




S´ mula da Disciplina
 u
1. Introdu¸ao ` Teoria de Linguagens Formais;
          c˜ a
   • Alfabetos, Senten¸as e Linguagens;
                      c
   • Gram´ticas e Reconhecedores;
         a
   • Tipos de Gram´ticas/Linguagens (Hierarquia de
                  a
     Chomsky);
5




2. Gram´ticas Regulares e Autˆmatos Finitos;
       a                     o
   • Defini¸ao de Gram´tica Regular (GR);
          c˜         a
   • Defini¸ao de Autˆmato Finito;
          c˜        o
   • Autˆmato Finito N˜o-Determin´
        o             a          ıstico;
   • Rela¸ao entre Autˆmato Finito e GR;
         c˜           o
   • Minimiza¸ao de Autˆmato Finito;
             c˜        o
   • Express˜es Regulares;
            o
   • Bombeamento para Linguagens Regulares;
   • M´quinas de Moore e Mealy;
      a
6


3. Gram´ticas Livres de Contexto e Autˆmatos de
         a                            o
   Pilha;
   • Defini¸ao de GLC;
          c˜
     ´
   • Arvores de Deriva¸ao e Ambig¨idade;
                      c˜         u
   • Transforma¸oes em GLC: Elimina¸˜o de S´
                 c˜                 ca      ımbolos
     In´teis; Transforma¸ao em uma GLC ε-Livre;
       u                c˜
     Remo¸ao de Produ¸oes Simples; Fatora¸˜o;
           c˜          c˜                ca
     Elimina¸ao de Recurs˜o ` Esquerda;
             c˜           a a
   • Formas Canˆnicas: Forma Normal de Chomsky;
               o
     Forma Normal de Greibach;
   • Autˆmatos de Pilha (PDA);
        o
   • Rela¸ao entre PDA e GLC;
         c˜
7




4. Reconhecedor – Algoritmo CYK;
5. Linguagens Tipo 0 e M´quinas de Turing;
                        a
6. Linguagens Sens´
                  ıveis ao Contexto e Autˆmatos de
                                         o
   Fita Limitada;
7. Hierarquia de Chomsky (revisitada).
8




Bibliografia
 • Introduction to Automata Theory, Languages, and
   Computation, Hopcroft e Ullman;
 • Linguagens Formais e Autˆmatos, Paulo Blauth
                           o
   Menezes.
9




Links

(Lˆminas)
  a
http://www.ufpel.tche.br/~campani/lingformal.pdf
(Lˆminas para impress˜o)
  a                  a
http://www.ufpel.tche.br/~campani/lingformal4.ps.gz
1          ¸˜
    INTRODUCAO                                                10


     1    Introdu¸˜o
                 ca
      • Uma linguagem ´ um meio de comunica¸˜o utilizado
                        e                   ca
        por elementos de uma determinada comunidade.
        Formada por:
         – Conjunto de palavras;
         – Conjunto de regras gramaticais;
      • Uma linguagem ´ formal quando pode ser
                        e
        representada atrav´s de um sistema com sustenta¸˜o
                          e                            ca
        matem´tica. Formada por:
               a
         – Sintaxe (estrutura) – foco da nossa disciplina;
         – Semˆntica (significado) – n˜o interessa para n´s.
              a                      a                  o
1          ¸˜
    INTRODUCAO                                                  11


      • Alfabeto (ou vocabul´rio) ´ um conjunto finito de
                             a      e
        s´
         ımbolos. Ex: d´ıgitos, letras, etc.

                            {a, b, c, . . . , z}

                                 {0, 1}

      • Senten¸a (ou palavra, ou string) sobre um alfabeto ´
               c                                            e
        qualquer seq¨ˆncia finita de s´
                     ue               ımbolos do alfabeto.
        Ex: Seja o alfabeto V = {0, 1}, s˜o senten¸as v´lidas
                                         a        c    a
        001, 1010, etc.
      • O tamanho (ou comprimento) de uma senten¸a ´c e
        dado pelo n´mero de s´
                    u          ımbolos que a comp˜e. Ex:
                                                  o
        V = {a, b, c}, senten¸a w = ab, tamanho |w| = 2;
                             c
1          ¸˜
    INTRODUCAO                                                   12




      • A senten¸a que n˜o cont´m s´
                  c     a      e   ımbolos (tamanho zero)
        ´ chamada de senten¸a vazia, sendo denotada por ε
        e                   c
        (|ε| = 0);
      • Seja V um alfabeto. Representamos por:
         – V ∗ – conjunto de todas as senten¸as compostas de
                                            c
           s´
            ımbolos de V incluindo a senten¸a vazia;
                                            c
         – V + = V ∗ − {ε};
        Exemplo: V = {0, 1},
        V ∗ = {ε, 0, 1, 00, 01, 10, 11, 000, 001, 010, . . .},
        V + = {0, 1, 00, 01, 10, 11, 000, 001, 010, . . .}.
1          ¸˜
    INTRODUCAO                                                 13




     Linguagem ´ qualquer conjunto de senten¸as sobre um
               e                            c
     alfabeto.
     ou
     Uma linguagem L sobre um alfabeto V ´ tal que L ⊆ V ∗ .
                                         e
1          ¸˜
    INTRODUCAO                                             14


      • Tipos de linguagens: finitas, vazias e infinitas;
      • Representa¸ao:
                  c˜
         – Listando as palavras (s´ finita);
                                  o
         – Descri¸ao alg´brica. Ex: {an bn cn |n ≥ 1}.
                 c˜     e
           Nota¸ao:
               c˜
                               n vezes
                              aaa · · · a = an ;
         – Definindo um algoritmo que determina (sim ou
           n˜o) se uma senten¸a pertence a uma linguagem
            a                c
           (Reconhecimento). Ex: autˆmato finito;
                                     o
         – Definindo um mecanismo que gera todas as
           senten¸as da linguagem em alguma ordem
                  c
           (Gera¸˜o). Ex: gram´tica.
                 ca             a
1          ¸˜
    INTRODUCAO                                               15




      • Uma gram´tica serve para definir qual o subconjunto
                   a
        de senten¸as que faz parte de uma determinada
                 c
        linguagem. Ela ´ um dispositivo formal para
                       e
        especificar uma linguagem potencialmente infinita de
        uma forma finita;
1          ¸˜
    INTRODUCAO                                           16



      • Nota¸˜o Formal de Gram´tica
            ca                a
        Uma gram´tica G ´ definida por uma qu´drupla
                a       e                   a

                          G = (N, T, P, S)

        onde:
        N conjunto finito de n˜o-terminais;
                             a
        T conjunto finito de terminais;
        P conjunto finito de regras de produ¸ao;
                                           c˜
        S s´
           ımbolo inicial da gram´tica.
                                 a
        Observa¸oes: N T = ∅, V = N
               c˜                            T, S ∈ N,
        P = {α → β|α ∈ V + ∧ β ∈ V ∗ }.
1          ¸˜
    INTRODUCAO                                                17



        Exemplo: gera n´meros inteiros
                       u

                          G = (N, T, P, I)

                             N = {I, D}
                         T = {0, 1, 2, . . . , 9}
          P = {I → D, I → DI, D → 0, D → 1, . . . , D → 9}

        ou

                  P : I → D|DI, D → 0|1|2| · · · |9

        Exerc´ıcio: Reescrever tentando evitar n´meros tipo
                                                u
        0015.
1          ¸˜
    INTRODUCAO                                            18




      • Conven¸oes:
              c˜
        S´
         ımbolos n˜o-terminais N = {A, B, C, . . . T };
                  a
        S´
         ımbolos terminais T = {a, b, c, . . . t};
        S´
         ımbolo terminal ou n˜o-terminal
                                  a
           N T = {U, V, . . . Z};
        Seq¨ˆncias de terminais T ∗ = {u, v, . . . z};
           ue
        Seq¨ˆncias de n˜o-terminais e terminais
           ue          a
          (N T )∗ = {α, β, γ, . . .}.
1          ¸˜
    INTRODUCAO                                               19




      • Deriva¸˜o (⇒) ´ uma opera¸ao de substitui¸ao
               ca      e           c˜             c˜
        efetuada de acordo com as regras de produ¸˜o da
                                                 ca
        gram´tica.
             a
        Formalmente: γαδ ⇒ γβδ se α → β ∈ P e γ, δ ∈ V ∗ .
        Exemplo: G = ({S, A, B}, {0, 1}, {S → AB, A →
        0|AB, B → 1|1B}, S), e

            S ⇒ AB ⇒ ABB ⇒ 0BB ⇒ 01B ⇒ 011B .
1          ¸˜
    INTRODUCAO                                          20




      • Uma seq¨ˆncia de deriva¸oes com zero ou mais
                ue             c˜
        passos (⇒∗ ):
        Formalmente: α1 ⇒∗ αm se
        α1 ⇒ α2 , α2 ⇒ α3 , . . . , αm−1 ⇒ αm ,
        α1 , α2 , . . . , αm ∈ V ∗ .
      • Garantindo pelo menos uma substitui¸ao (⇒+ ):
                                           c˜
        Formalmente: α1 ⇒+ αm se α1 ⇒ α2 , α2 ⇒∗ αm ,
        α1 , α2 , . . . , αm ∈ V ∗ .
1          ¸˜
    INTRODUCAO                                              21




      • Uma senten¸a de uma linguagem ´ uma seq¨ˆncia
                     c                    e         ue
        formada por terminais, obtida a partir do s´
                                                   ımbolo
        inicial da gram´tica desta linguagem, atrav´s de
                       a                           e
        deriva¸oes sucessivas.
               c˜
        Formalmente: S ⇒+ u.
      • Uma forma sentencial ´ uma seq¨ˆncia qualquer,
                                e        ue
        composta de terminais e n˜o-terminais, obtida a
                                   a
        partir do s´
                   ımbolo inicial da gram´tica atrav´s de
                                         a          e
        deriva¸oes sucessivas.
              c˜
        Formalmente: S ⇒∗ α.
1          ¸˜
    INTRODUCAO                                                22




      • A linguagem gerada por uma gram´tica
                                           a
        G = (N, T, P, S) ´ o conjunto de todas as senten¸as
                         e                               c
        da linguagem obtidas da gram´tica por deriva¸oes
                                      a               c˜
        sucessivas.
        Formalmente: L(G) = {w|w ∈ T ∗ ∧ S ⇒∗ w}.
1          ¸˜
    INTRODUCAO                                                 23




        Ex: G = ({S}, {0, 1}, P, S) com
        P = {S → 0S1, S → 01}. Assim,
        S ⇒ 0S1 ⇒ 00S11 ⇒ 03 S13 ⇒ · · · que ´ igual a 0n 1n
                                              e
        para n ≥ 1. Logo, L(G) = {0n 1n |n ≥ 1}.
        Nota¸˜o:
            ca
                            n vezes
                           aaa · · · a = an .
1          ¸˜
    INTRODUCAO                                               24




        Exerc´
             ıcio: Seja a seguinte gram´tica:
                                       a

                       G = ({S, A, B}, {0, 1}, P, S)

        P = {S → ASBB|BSAA|0, A → 01|01A, B → 10|10B}
        Obtenha as deriva¸oes para as seguintes senten¸as:
                         c˜                           c
         1. 0101010;
         2. 101000101010101.
1          ¸˜
    INTRODUCAO                                                        25



      • Tipos de Gram´ticas – segundo a hierarquia de
                      a
        Chomsky existem quatro tipos:
        Tipo 0 ou Irrestritas P = {α → β|α ∈ V + , β ∈ V ∗ };
        Tipo 1 ou Sens´ ıvel ao Contexto Se α → β ∈ P
          ent˜o |α| ≤ |β|.
             a
           Outra forma:
           P = {α1 Aα2 → α1 βα2 |α1 , α2 ∈ V ∗ , β ∈ V + , A ∈ N };
        Tipo 2 ou Livre de Contexto
          P = {α → β|α ∈ N ∧ β = ε};
        Tipo 3 ou Regular A → aB ou A → a, ou seja,
          P = {A → aX|A ∈ N, a ∈ T, X ∈ N ∪ {ε}}.
1          ¸˜
    INTRODUCAO                                                26



      • Gram´ticas lineares:
            a
        Gram´tica linear ` direita Se todas as produ¸oes
             a           a                          c˜
          s˜o da forma A → wB ou A → w, com w ∈ T ∗ ;
           a
        Gram´tica linear ` esquerda Se todas as
             a            a
          produ¸oes s˜o da forma A → Bw ou A → w;
               c˜    a
        Gram´tica linear unit´ria ` direita linear `
              a                a  a                a
          direita com |w| ≤ 1;
        Gram´tica linear unit´ria ` esquerda linear `
             a                a   a                 a
          esquerda com |w| ≤ 1.
      • Teorema: As quatro defini¸oes de gram´ticas lineares
                                c˜          a
        s˜o equivalentes.
         a
1          ¸˜
    INTRODUCAO                                               27




      • Defini¸˜o alternativa de gram´tica regular:
             ca                     a
        Uma gram´tica regular ´ qualquer gram´tica linear.
                a             e              a
1          ¸˜
    INTRODUCAO                                        28




                          Regulares

                    Livres de Contexto

                         ´
                     Sensiveis ao Contexto
                                 Tipo 0


            Tipo 3 ⊂ Tipo 2 ⊂ Tipo 1 ⊂ Tipo 0 ⊂ T ∗
1          ¸˜
    INTRODUCAO                                         29




      • Ex:
                    G = ({S, A, B}, {a, b}, P, S)
         P = {S → aB|bA, A → a|aS|bAA, B → b|bS|aBB}
         1. Tipo da gram´tica?
                        a
         2. L(G)?
1          ¸˜
    INTRODUCAO                                                  30




      • Respostas:
         1. Livre de contexto;
         2. L(G) ´ o conjunto de todas as palavras em T ∗ que
                 e
            tem o mesmo n´mero de a’s e b’s.
                          u
1          ¸˜
    INTRODUCAO                                               31


      • Linguagens classificadas segundo as gram´ticas em:
                                               a
         1. Recursivamente enumer´veis ou RE
                                    a
            (gram´tica Tipo 0) – conjuntos recursivamente
                 a
            enumer´veis est˜o relacionado com a m´quina de
                   a       a                       a
            Turing, fun¸˜es parciais recursivas e
                       co
            computabilidade;
         2. Linguagem sens´ ao contexto ou LSC
                           ıvel
            (gram´tica Tipo 1);
                 a
         3. Linguagem livre de contexto ou LLC
            (gram´tica Tipo 2);
                 a
         4. Linguagem Regular ou LR
            (gram´tica Tipo 3).
                 a
1          ¸˜
    INTRODUCAO                                                 32


      • Vamos extender as defini¸oes das gram´ticas Tipo 1
                                  c˜            a
        e 2 para permitir produ¸˜es do tipo S → ε. Isto s´ ´
                                 co                      oe
        poss´ se S n˜o aparece em lado direito de
             ıvel      a
        nenhuma produ¸˜o. Assim, S → ε somente ser´
                        ca                           a
        utilizada para originar a senten¸a vazia;
                                        c

                        L(G ) = L(G)     {ε}

      • Para introduzir S → ε em gram´tica que viola a
                                        a
        condi¸˜o anterior, devemos transforma-la em uma
             ca
        equivalente que obede¸a a restri¸ao;
                              c         c˜
      • Gram´ticas equivalentes s˜o aquelas que geram a
            a                    a
        mesma linguagem;
1          ¸˜
    INTRODUCAO                                                  33




      • Para transformar incluiremos um novo s´  ımbolo
        n˜o-terminal (S ) que passar´ a ser o novo s´
          a                           a              ımbolo
        inicial. Em seguida, incluiremos em P todas as
        regras que tenham o s´ ımbolo S no lado esquerdo,
        substituindo este por S , e incluindo ainda uma regra
        S → ε;
        Ex1: G = ({S, A}, {a}, P, S) com
        P = {S → aA, A → a|aA}. Obtemos
        G = ({S, A}, {a}, P , S) com
        P = {S → aA|ε, A → a|aA};
1          ¸˜
    INTRODUCAO                              34




        Ex2: G = ({S, A}, {a}, P, S) com
        P = {S → aA, A → a|aS}. Obtemos
        G = ({S , S, A}, {a}, P , S ) com
        P = {S → aA|ε, S → aA, A → a|aS};
1          ¸˜
    INTRODUCAO                                                 35




     Exerc´
          ıcios:
      1. Construa uma gram´tica G tal que:
                          a
        (a) L(G) = {an bm |n ≥ 0 ∧ m ≥ 1};
        (b) L(G) = {ai bj ci |i ≥ 0 ∧ j ≥ 1}.
      2. Construa uma gram´tica regular G tal que:
                          a

          L(G) = {w|w ∈ {0, 1}+ e n˜o tem 1 s consecutivos}
                                   a

      3. Construa uma gram´tica livre de contexto G tal que:
                          a
         L(G) = {w|w ∈
         {0, 1, 2}+ e todos os zeros sejam consecutivos}
1          ¸˜
    INTRODUCAO                                                  36




      4. Seja G definida por:

                   S → aS|bB, B → cB|cC, C → cS|c

        Pede-se:
        (a) determine L(G);
       (b) construa G tal que L(G ) = L(G) {ε};
        (c) verifique se as senten¸as abaixo pertencem a L(G):
                                 c
           • abccc;
           • bccabcc;
           • abccbbc.
1          ¸˜
    INTRODUCAO                                                 37




      5. Construa uma GLC G tal que L(G) seja o conjunto
         de express˜es aritm´ticas v´lidas. Os terminais s˜o
                   o         e      a                      a
         identificadores (id), parˆnteses (“(” e “)”), e os
                                 e
         operadores +, ∗, e − un´rio.
                                  a
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                      38


     2    Gram´ticas Regulares e
               a
          Autˆmato Finito
             o
       • O autˆmato finito (AF) ´ uma m´quina abstrata que
              o                  e       a
         reconhece linguagens regulares;
       • Modelo matem´tico com entradas e sa´
                         a                     ıdas. Se ´
                                                        e
         fornecido ao AF uma seq¨ˆncia de s´
                                  ue         ımbolos como
         entrada, ele responder´ se esta seq¨ˆncia pertence `
                               a            ue              a
         linguagem ou n˜o;
                         a
       • O AF pode assumir um n´mero finito de estados;
                               u
       • Um estado resume os estados anteriores pelos quais
         passou e os s´
                      ımbolos que j´ foram lidos na entrada.
                                   a
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO              39




       • Defini¸˜o formal de autˆmato finito
              ca               o
         Um autˆmato finito M sobre um alfabeto Σ ´ um
                o                                e
         sistema (K, Σ, δ, q0 , F ) onde:
         K – conjunto finito, n˜o vazio, de estados;
                              a
         Σ – alfabeto finito de entrada;
         δ – fun¸ao de transi¸ao de estados,
                c˜           c˜

                            δ :K ×Σ       {ε} → K ;

         q0 ∈ K estado inicial;
         F ⊂ K conjunto de estados finais.
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                    40


                                Fita de entrada

                            0     1    0     0    1   0   1
                 Cabeçote




                                           Controle
                                            Finito



     δ(q, a) = p para q, p ∈ K e a ∈ Σ, significando que
     estando no estado q e lendo o s´ımbolo a na fita de
     entrada podemos mudar para o estado p avan¸ando o
                                                   c
     cabe¸ote uma posi¸ao.
          c              c˜
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                    41



       • Diagrama de Transi¸˜o
                           ca
         – Outra maneira de representar um autˆmato finito;
                                              o
         – Grafo direcionado e rotulado;
         – Os v´rtices representam os estados, desenhados
               e
           como c´
                 ırculos;
         – As arestas representam as transi¸oes entre dois
                                           c˜
           estados, sendo o r´tulo o s´
                             o        ımbolo reconhecido na
           entrada;
         – O estado inicial ´ marcado com uma seta;
                            e
         – Os estados finais s˜o indicados por c´
                             a                 ırculos
           duplos.
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                              42




     Ex:

                                      a
                                         

                                a             b
                           q0
                         @ABC
                         GFED          q1
                                    / GFED
                                      @ABC            q2
                                                  / G?=
                                                    @ABC
                                                     89:;
                                                     FED


     M = ({q0 , q1 , q2 }, {a, b}, δ, q0 , {q2 }), e δ(q0 , a) = q1 ,
     δ(q1 , a) = q1 , δ(q1 , b) = q2 . Logo, T (M ) = {an b|n ≥ 1}.
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                  43




       • Tabela de Transi¸ao de Estados
                         c˜
         – Uma terceira forma de representar um AF;
         – Tabela indicando na vertical os estados, e na
           horizontal os s´
                          ımbolos do alfabeto. No
           cruzamento est˜o as transi¸oes poss´
                           a          c˜       ıveis;
         – O estado inicial ´ indicado por uma seta, e os
                            e
           estados finais por asteriscos.
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO              44




     Ex1:
                            δ    a    b
                          → q0   q1   -
                           q1    q1   q2
                           *q2   -    -
     Exerc´
          ıcio:
      1. Descreva formalmente o AF;
      2. Desenhe o diagrama de transi¸˜o equivalente.
                                     ca
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                                    45




     Ex2: AF que reconhece senten¸as em {0, 1}∗ as quais n˜o
                                   c                      a
     cont´m dois ou mais 1’s consecutivos.
         e

                                  0
                                      
 1
                                          + GFED
                                   q0
                               / GFED k
                                 @ABC
                                  ?=
                                  89:;        q1
                                            @ABC
                                             ?=
                                             89:;
                                       0


     M = (K, Σ, δ, q0 , F ), K = {q0 , q1 }, Σ = {0, 1},
     F = {q0 , q1 }, com δ(q0 , 0) = q0 , δ(q0 , 1) = q1 , δ(q1 , 0) = q0 .
     Exerc´
          ıcio: Apresente a tabela de transi¸ao.
                                            c˜
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO   46




     Tabela:
                           δ     0    1
                         → ∗q0   q0   q1
                          *q1    q0   -
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                     47




     Ex3: Identificadores de linguagens de programa¸˜o
                                                  ca
     S → L|LR, R → L|D|LR|DR, L → a|b|c · · · |z, D →
     0|1|2| · · · |9

                                  a|b|···|z|0|1|···|9
                             a|b|···|z
                                              

                           q0
                         GFED
                         @ABC              q1
                                       / G?=
                                         @ABC
                                          89:;
                                          FED


     Exerc´
          ıcios:
      1. Inteiros com ou sem sinal;
      2. Reais (uma casa ap´s a v´
                           o     ırgula) com sinal opcional.
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                       48


                a        ca             ınio K × Σ∗ :
       • Extens˜o da fun¸˜o δ para o dom´
            ˆ
         1. δ(q, ε) = q;
            ˆ            ˆ
         2. δ(q, ua) = δ(δ(q, u), a) para u ∈ Σ∗ e a ∈ Σ;
         ˆ
       • δ(q, u) = p significa que M , iniciando no estado q e
         tendo a seq¨ˆncia u na fita de entrada, entrar´ no
                     ue                                 a
         estado p, ap´s o cabe¸ote mover-se para a direita |u|
                      o        c
         c´lulas;
          e
                     c     e                  ˆ
       • Uma senten¸a u ´ aceita por M se δ(q0 , u) = p para
         algum p ∈ F , ou seja:
                     ˆ
         T (M ) = {u|δ(q0 , u) = p ∧ p ∈ F };
       • Qualquer conjunto de senten¸as aceito por um AF ´
                                      c                  e
         dito ser regular (linguagem regular ).
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO              49


         Exemplo: M = (K, Σ, δ, q0 , F ), Σ = {0, 1},
         K = {q0 , q1 , q2 , q3 }, F = {q0 }.


                             δ(q0 , 0) = q2
                             δ(q1 , 0) = q3
                             δ(q2 , 0) = q0
                             δ(q3 , 0) = q1
                             δ(q0 , 1) = q1
                             δ(q1 , 1) = q0
                             δ(q2 , 1) = q3
                             δ(q3 , 1) = q2
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO   50




                                 1
                                    + GFED
                              q0
                           @ABC
                           GFED k
                             ?=
                             89:;      q1
                                      @ABC
                                T 1
                                         T
                           0   0       0 0
                                 1    
                                    + GFED
                            q2
                           @ABC
                           GFED k      q3
                                      @ABC
                                   1
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                             51



                                  δ      0    1
                               → ∗q0     q2   q1
                                 q1      q3   q0
                                 q2      q0   q3
                                 q3      q1   q2
         Reconhecimento de 110101:
         (q0 , 110101) ⇒ (q1 , 10101) ⇒ (q0 , 0101) ⇒ (q2 , 101) ⇒
         (q3 , 01) ⇒ (q1 , 1) ⇒ (q0 , ε). Assim, 110101 ∈ T (M ).
         Reconhecimento de 1011:
         (q0 , 1011) ⇒ (q1 , 011) ⇒ (q3 , 11) ⇒ (q2 , 1) ⇒ (q3 , ε).
         Assim, 1011 ∈ T (M ).
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                 52




         T (M ) = {w|w ∈
         {0, 1}∗ e w cont´m um n´mero par de 0 s e 1 s}.
                         e      u
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                   53




       • Autˆmato Finito N˜o-Determin´
            o             a          ıstico (AFND)
         Um autˆmato finito n˜o-determin´stico ´ um sistema
                 o                a    ı      e
         (K, Σ, δ, q0 , F ) onde:
         K conjunto finito, n˜o vazio, de estados;
                            a
         Σ alfabeto de entrada;
         δ : K × Σ → Partes(K) fun¸ao de transi¸ao (n˜o
                                  c˜           c˜    a
             determin´
                     ıstico);
         q0 ∈ K estado inicial;
         F ⊂ K conjunto de estados finais.
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                           54




       • Diferen¸a entre AF e o AFND: δ(q, a) ´ um conjunto
                c                               e
         de estados (possivelmente vazio) ao inv´s de um
                                                 e
         unico estado;
         ´
       • Assim, δ(q, a) = {p1 , p2 , . . . , pk } significa que M
         estando no estado q e tendo a na posi¸˜o do cabe¸ote
                                                        ca       c
         na fita de entrada, move uma c´lula para a direita e
                                                 e
         escolhe qualquer estado entre p1 , p2 , . . . , pk como
         pr´ximo estado.
           o
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                        55




                                ınio K × Σ∗ :
       • Extendendo δ para o dom´
            ˆ
         1. δ(q, ε) = {q};
            ˆ
         2. δ(q, ua) =      ˆ        δ(p, a) para todo u ∈ Σ∗ e
                          p∈δ(q,u)
            a ∈ Σ;
       • Uma senten¸a u ´ aceita por M se existe um estado
                    c      e
                     ˆ
         p ∈ F e p ∈ δ(q0 , u);
                         ˆ
       • T (M ) = {u|p ∈ δ(q0 , u) ∧ p ∈ F }.
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                  56




     Ex: AFND que aceita o conjunto de todas as senten¸as
                                                       c
     bin´rias que cont´m dois 0’s ou 1’s consecutivos.
        a             e

                                                  0|1
                                                       

                                            0
                                       q
                                     GFED
                                     @ABC
                                       3
                                                    q4
                                                / G?=
                                                  @ABC
                                                   89:;
                                                   FED
                     0|1        0 }}
                                    }}
                                 }
                            }}}}
                          q0 e
                       / GFED
                         @ABC
                              ee
                                ee                0|1
                                  ee
                                1 ee                   

                                            1
                                       q1
                                     GFED
                                     @ABC           q2
                                                / G?=
                                                  @ABC
                                                   89:;
                                                   FED
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                           57


     M = ({q0 , q1 , q2 , q3 , q4 }, {0, 1}, δ, q0 , {q2 , q4 }) e
                              δ(q0 , 0) = {q0 , q3 }
                              δ(q1 , 0) = ∅
                              δ(q2 , 0) = {q2 }
                              δ(q3 , 0) = {q4 }
                              δ(q4 , 0) = {q4 }
                              δ(q0 , 1) = {q0 , q1 }
                              δ(q1 , 1) = {q2 }
                              δ(q2 , 1) = {q2 }
                              δ(q3 , 1) = ∅
                              δ(q4 , 1) = {q4 }
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                    58




       • Teorema: Se L ´ um conjunto aceito por um AFND,
                        e
         ent˜o existe um autˆmato finito determin´
            a               o                   ıstico
         (AFD) que aceita L.
         (Ou seja, o n˜o determinismo n˜o acrescenta nada –
                      a                  a
         a n˜o ser praticidade – ao AF).
            a
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                                59



       • Seja M = (K, Σ, δ, q0 , F ) um AFND que aceita L.
         Definimos o AFD M = (K , Σ, δ , q0 , F ) tal que:
         – Os estados de M s˜o constituidos por todos os
                             a
           subconjuntos do conjunto de estados de M :
           K = Partes(K) e K = 2K ;
         – Nota¸ao: estados de M s˜o [q1 q2 q3 · · · qi ], onde
                   c˜                     a
           q1 , q2 , q3 , . . . , qi ∈ K;
         – Ex: Se K = {q0 , q1 } ent˜o K = {∅, [q0 ], [q1 ], [q0 q1 ]};
                                    a
         – F ´ o conjunto de todos os estados de K contendo
             e
           um estado de F ;
         – q0 = [q0 ];
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                                        60




         – Definimos δ ([q1 q2 q3 · · · qi ], a) = [p1 p2 p3 · · · pj ] se e
           somente se δ({q1 , q2 , . . . , qi }, a) = {p1 , p2 , . . . , pj } =
           δ(q1 , a) ∪ δ(q2 , a) ∪ · · · ∪ δ(qi , a).
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                           61




       • Prova: T (M ) = T (M ). Por indu¸˜o sobre o
                                                  ca
         tamanho da palavra de entrada w. Devemos mostrar
               ˆ
         que δ ([q0 ], w) = [p1 · · · pi ] se e somente se
         ˆ
         δ(q0 , w) = {p1 , . . . , pi }.
                                               a ˆ
         1. Base: |w| = 0, w = ε. Ent˜o, δ ([q0 ], ε) = [q0 ] se e
                           ˆ
            somente se δ(q0 , ε) = {q0 }, que ´ verdadeiro por
                                                   e
            defini¸ao;
                 c˜
         2. Hip´tese: |w| = n, n ≥ 1.
                o
                    ˆ
            Supor δ ([q0 ], w) = [p1 · · · pi ] se e somente se
            ˆ
            δ(q0 , w) = {p1 , . . . , pi };
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                             62


         3. Passo: |wa| = n + 1, n ≥ 1:
                              ˆ
                              δ ([q0 ], wa) = [q1 · · · qj ]

            se e somente se
                              ˆ
                              δ(q0 , wa) = {q1 , . . . , qj }

            que equivale a dizer que
                          ˆ
                          δ ([p1 · · · pi ], a) = [q1 · · · qj ]

            se e somente se
                       ˆ
                       δ({p1 , . . . , pi }, a) = {q1 , . . . , qj }

            que ´ verdade por defini¸ao.
                e                  c˜
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                          63




     Exemplo: Dado o AFND M = ({q0 , q1 }, {0, 1}, δ, q0 , {q1 })
     e
                 δ(q0 , 0) = {q0 , q1 } δ(q0 , 1) = {q1 }
                  δ(q1 , 0) = ∅ δ(q1 , 1) = {q0 , q1 } .
     Construir o AFD M equivalente.
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                      64




                    M = (K , {0, 1}, δ , [q0 ], F )

                      K = {[q0 ], [q1 ], [q0 q1 ], ∅}
                          F = {[q1 ], [q0 q1 ]}

             δ(q0 , 0) = {q0 , q1 } ⇒ δ ([q0 ], 0) = [q0 q1 ]
                δ(q0 , 1) = {q1 } ⇒ δ ([q0 ], 1) = [q1 ]
                    δ(q1 , 0) = ∅ ⇒ δ ([q1 ], 0) = ∅
             δ(q1 , 1) = {q0 , q1 } ⇒ δ ([q1 ], 1) = [q0 q1 ]
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                                     65




     δ({q0 , q1 }, 0) = δ(q0 , 0) ∪ δ(q1 , 0) = ⇒ δ ([q0 q1 ], 0) = [q0 q1 ]
                 = {q0 , q1 } ∪ ∅ = {q0 , q1 }
     δ({q0 , q1 }, 1) = δ(q0 , 1) ∪ δ(q1 , 1) = ⇒ δ ([q0 q1 ], 1) = [q0 q1 ]
             = {q1 } ∪ {q0 , q1 } = {q0 , q1 }
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO              66



     Tabela do AFND:
                          δ         0          1
                        → q0     q0 , q 1     q1
                         ∗q1        ∅       q0 , q 1
     Tabela do AFD equivalente:

                         δ           0          1
                       → [q0 ]   [q0 q1 ]     [q1 ]
                        ∗[q1 ]       ∅       [q0 q1 ]
                       ∗[q0 q1 ] [q0 q1 ] [q0 q1 ]
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                   67




       • Rela¸˜o entre AF e GR
             ca
       • Teorema: Se G = (N, T, P, S) ´ uma GR (Tipo 3)
                                      e
         ent˜o existe um AF M = (K, T, δ, S, F ) tal que
            a
         T (M ) = L(G).
       • Seja M um AFND:
         – os estados de M s˜o as vari´veis de G, mais um
                             a        a
           estado adicional A, A ∈ N . Assim, K = N ∪ {A};
         – estado inicial de M ´ S;
                               e
         – se P tem produ¸ao S → ε ent˜o F = {S, A}, caso
                          c˜          a
           contr´rio F = {A};
                a
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO         68




         – transi¸oes de M :
                 c˜
           1. δ(B, a) = A para cada B → a ∈ P ;
           2. δ(B, a) = C para cada B → aC ∈ P ;
           3. δ(A, a) = ∅ para todo a ∈ T .
       • Provar que T (M ) = L(G).
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO            69



     Exemplo: G = ({S, B}, {0, 1}, P, S), e

                    P : S → 0B, B → 0B|1S|0

     Construir um AF que aceite L(G):

                 M = ({S, B, A}, {0, 1}, δ, S, {A})

                    δ(S, 0) = {B} ⇐ S → 0B
                       δ(S, 1) = ∅
                 δ(B, 0) = {B, A} ⇐ B → 0B|0
                    δ(B, 1) = {S} ⇐ B → 1S
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                    70


     Convertendo para um AFD:

                    M = (K , {0, 1}, δ , [S], F )

          K = {∅, [S], [A], [B], [AS], [AB], [BS], [ABS]}
                  F = {[A], [AS], [AB], [ABS]}
                δ ([S], 0) = [B] δ ([B], 0) = [AB]
                  δ ([S], 1) = ∅ δ ([B], 1) = [S]
        δ ([AB], 0) = δ(A, 0) ∪ δ(B, 0) = ∅ ∪ {A, B} = [AB]
          δ ([AB], 1) = δ(A, 1) ∪ δ(B, 1) = ∅ ∪ {S} = [S]
                       δ (∅, 0) = δ (∅, 1) = ∅
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO    71




     Eliminando os estados inacess´
                                  ıveis:

                       K = {[S], [B], [AB]}

                           F = {[AB]}
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                       72



       • Teorema: Se M = (K, T, δ, q0 , F ) ´ um AF ent˜o
                                            e          a
         existe uma gram´tica do Tipo 3, G = (N, T, P, S), tal
                        a
         que L(G) = T (M ).
       • Para obter G:
          – N = K;
          – S = q0 ;
          – Produ¸oes:
                 c˜
           1. B → aC para toda a transi¸˜o δ(B, a) = C;
                                        ca
           2. B → a para toda a transi¸˜o δ(B, a) = C,
                                      ca
              quando C ∈ F ;
          – Se ε ∈ T (M ) ent˜o L(G) = T (M );
                             a
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                      73




         – Se q0 ∈ F ent˜o ε ∈ T (M ), e L(G) = T (M ) − {ε}.
                        a
           Neste caso, construir uma L(G ) = L(G) ∪ {ε};
       • Provar L(G) = T (M ).
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO            74



     Exemplo: Contruir G = (K , {0, 1}, P , [S]),
     K = {[S], [B], [AB]}, a partir de M do exemplo
     anterior:
                   [S] → 0[B] δ ([S], 0) = [B]
                 [B] → 0[AB] δ ([B], 0) = [AB]
                      [B] → 0 [AB] ∈ F
               [AB] → 0[AB] δ ([AB], 0) = [AB]
                      [AB] → 0 [AB] ∈ F
                   [B] → 1[S] δ ([B], 1) = [S]
                 [AB] → 1[S] δ ([AB], 1) = [S]
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO     75




       • Minimiza¸˜o de AF.
                 ca
         Um AF M ´ m´nimo se:
                 e ı
         1. n˜o possui estados inacess´
             a                        ıveis;
         2. n˜o possui estados mortos;
             a
         3. n˜o possui estados equivalentes.
             a
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                         76




       • Constru¸˜o do AF m´
                ca         ınimo:
         1. retirar de K os estados inacess´veis, ou seja, todo
                                           ı
            estado q ∈ K para o qual n˜o exista senten¸a w tal
                                       a                 c
                 ˆ
            que δ(q0 , w) = q;
         2. retirar de K os estados mortos, ou seja, todo estado
            que n˜o sendo estado final e que n˜o conduz a
                  a                           a
            nenhum estado final durante o reconhecimento;
         3. construir todas as poss´
                                   ıveis classes de equivalˆncia
                                                           e
            de estados;
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                             77




         4. construir M = (K , Σ, δ , q0 , F ) conforme segue:
           – K ´ o conjunto das classes de equivalˆncia
                 e                                    e
             obtidas;
           – q0 ´ a classe de equivalˆncia que cont´m q0 ;
                e                      e             e
           – F ´ o conjunto de todas as classes de
                 e
             equivalˆncia que cont´m pelo menos um estado
                      e              e
             de F ;
           – δ ´ o conjunto de transi¸oes tais que
                e                        c˜
             δ ([p], a) = [q] para toda a transi¸˜o δ(p1 , a) = q1 ,
                                                ca
             onde p1 ∈ [p] e q1 ∈ [q].
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                             78




       • Constru¸˜o das Classes de Equivalˆncia:
                ca                        e
         Um conjunto de estados q1 , q2 , . . . , qj est´ em uma
                                                            a
         mesma classe de equivalˆncia se todas as transi¸˜es
                                         e                        co
         poss´
             ıveis a partir de cada estado conduz o autˆmato     o
         aos estados qi , qi+1 , . . . , qn , estando estes ultimos
                                                             ´
         todos em uma mesma classe de equivalˆncia.       e
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                        79




       • Algoritmo:
         1. Criar um estado ∅ para representar as transi¸oes
                                                        c˜
            indefinidas;
         2. Dividir K em duas classes de equivalˆncia iniciais,
                                                e
            uma contendo os estados finais e a outra todos os
            demais estados de K;
         3. Dividir sucessivamente as classes obtidas, at´ que
                                                         e
            nenhuma nova classe possa ser obtida.
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO   80




     Exemplo:

                           δ    a    b
                         → q0   q1   q5
                           q1   -    q2
                          ∗q2   q3   q2
                          ∗q3   q3   q3
                           q4   q4   q1
                           q5   q5   q5
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO      81




     Aplicando:
      1. estados inacess´
                        ıveis: q4 ;
      2. estado morto: q5 ;
                                 δ    a    b
                               → q0   q1   ∅
                                q1    ∅    q2
                                ∗q2   q3   q2
                                ∗q3   q3   q3
                                 ∅    ∅    ∅
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                                82


      3. classes de equivalˆncia:
                           e

              {q2 , q3 }                  {q0 , q1 , ∅}
                                                      tt
                                                        tt
                                                          tt
                                                            tt
                                                              t
                                            {q0 , ∅}              {q1 }
                                            t
                                         ttt
                                      ttt
                                    tt
                            {q0 }               {∅}


              {q2 , q3 }    {q0 }               {∅}               {q1 }


                 [0]         [1]                [2]                [3]
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO       83




      4. autˆmato sem classes de equivalˆncia:
            o                           e
                             δ     a     b
                            ∗[0]   [0]   [0]
                           → [1] [3]     [2]
                             [2]   [2]   [2]
                             [3]   [2]   [0]
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO    84




      5. AF m´
             ınimo:
                            δ     a     b
                           ∗[0]   [0]   [0]
                          → [1] [3]      -
                            [3]    -    [0]
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO             85




     Exerc´
          ıcios:
      1. Minimize o seguinte AF:
                                    a
                                       + GFED
                                q0
                              GFED k
                              @ABC        q1
                                         @ABC
                                        a
                               b                 b
                                                
                                q2 e
                              GFED
                              @ABC
                               ?=
                               89:;             q3
                                              GFED
                                              @ABC
                                               ?=
                                               89:;
                                    e
                                    e       }
                                            }
                                        eea}
                                       b }
                                 a       }e        b
                                    }}}} eee 
                                     ~
                                  q4
                              2 GFED
                                @ABC
                                 ?=
                                 89:;           q5
                                            / GFED
                                              @ABC
                                        b
                          a
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                            86




      2. Minimize o seguinte AF:
                                        
                                          q0
                                        GFED
                                        @ABC

                                        a
                                               
                                             q1 e
                                           GFED
                                           @ABC
                                         }        ee
                                   b }}}            eea
                                   }}                 ee
                                  }                     ee
                             }}
                             ~                b
                    b
                        2
                           q2 f
                          GFED o
                          @ABC                             q
                                                         GFED
                                                         @ABC
                                                          ?=
                                                          89:;
                                                           3 l
                                                                  a
                                       b
                                                   a }}
                                                        }}
                                                     }
                                                   }}
                                 a
                                                }}
                                             q4
                                           GFED
                                           @ABC
                                            ?=
                                            89:;
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                   87




       • Express˜es Regulares – s˜o esquemas para
                 o                a
         representar linguagens regulares;
       • Sintaxe:
         1. Todos os s´
                      ımbolos do alfabeto s˜o ER;
                                           a
         2. Se R1 e R2 s˜o ER, ent˜o (R1 |R2 ) ´ uma ER
                        a         a            e
            (uni˜o);
                a
         3. Se R1 e R2 s˜o ER, ent˜o (R1 R2 ) ´ uma ER
                        a         a           e
            (concatena¸ao);
                      c˜
         4. Se R1 ´ ER, ent˜o (R1 )∗ ´ uma ER (repeti¸ao).
                  e        a         e               c˜
                       +
         Observa¸oes: R1 = R1 (R1 )∗ e R1 = R1 |ε.
                c˜                      ?
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                           88



       • Exemplos:
         – (a)∗ = a∗ = {ε, a, aa, aaa, . . .};
         – a+ = {a, aa, aaa, . . .};
         – (a|b)∗ = {ε, a, b, aa, ab, ba, bb, aaa, . . .};
         – a|b∗ = {ε, a, b, bb, bbb, . . .};
         – a(a|b)∗ = {a, aa, ab, aaa, aab, aba, abb, aaaa, . . .};
         – (a(a|b))∗ = {ε, aa, ab, aaaa, abaa, aaab, . . .};
         – Identificadores: l(l|d)∗ = {l, ll, ld, lll, . . .};
         – Inteiro com sinal: (+|−)d+ ;
         – Inteiro com/sem sinal: ((+|−)d+ )|d+ .
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                89




       • Bombeamento para Linguagens Regulares (Pumping
         Lemma) – serve para provar que uma dada
         linguagem ´ regular;
                   e
       • Para provar que sim: AF, GR, ER;
       • Para provar que n˜o: bombeamento;
                          a
       • Prova por redu¸˜o ao absurdo;
                       ca

       • Seja M = (K, Σ, δ, q0 , F ) e K = n;
       • Considere uma entrada w tal que |w| ≥ n;
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                     90




       • Assim, o caminho no diagrama de transi¸oes deve
                                               c˜
         passar por um conjunto de estados Q ⊂ K mais de
         uma vez (la¸o);
                    c
                                         
                         q0            HIJK
                                        Q                qi
                       GFED /o /o /o / ONML /o /o /o / GFED
                       @ABC                            @ABC
                                                        ?=
                                                        89:;
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                       91




       • Lema: Seja L uma linguagem regular. Ent˜o, existe
                                                     a
         uma constante n tal que se z ´ uma palavra de L, e
                                        e
         |z| ≥ n, nos podemos dizer que z = uvw de tal forma
         que |uv| ≤ n, |v| ≥ 1 e, para todo i ≥ 0, uv i w est´
                                                             a
         em L.
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                      92


       • Aplica¸˜o do bombeamento (aplicado como um
               ca
         “jogo” contra um “advers´rio”):
                                 a
         1. Selecione uma linguagem L que desejamos provar
            que n˜o ´ regular;
                  a e
         2. O “advers´rio” escolhe um n, a constante do Lema.
                     a
            Uma vez escolhido o n ele n˜o pode muda-lo;
                                       a
         3. Selecione uma string z ∈ L. Sua escolha depende
            do n escolhido no passo anterior;
         4. O “advers´rio” quebra z nas partes u,v, e w, tal
                      a
            que |uv| ≤ n e |v| ≥ 1;
         5. Vocˆ encontra a contradi¸ao mostrando que para
                e                    c˜
            qualquer u, v, e w escolhido pelo “advers´rio”,
                                                      a
            existe um i para o qual uv i w n˜o est´ em L.
                                            a     a
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                        93




                    n2
       • Ex: L = {a |n ≥ 1} n˜o ´ regular.
                             a e
                                  2
         Solu¸˜o: Suponha z = an , z ∈ L e L ´ regular. Seja
             ca                                   e
         z = uvw, onde 1 ≤ |v| ≤ n e uv i w ∈ L para todo i.
         Em particular, seja i = 2. Ent˜o,
                                         a
         n2  |uv 2 w| ≤ n2 + n, j´ que |uv 2 w| = |uvw| + |v|,
                                  a
         |uvw| = n2 . Logo, n2  |uv 2 w| ≤ n2 + n  (n + 1)2 .
         Ou seja, o tamanho de uv 2 w fica entre n2 e (n + 1)2 e
         n˜o pode ser um quadrado perfeito. Assim, uv 2 w ∈ L
          a
         e L n˜o ´ regular.
              a e
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO      94




       • Exerc´
              ıcio: Prove por bombeamento que
         L = {an bn |n ≥ 0} n˜o ´ regular.
                             a e
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                        95




         Solu¸˜o: Suponha z = an bn , z ∈ L e L ´ regular.
             ca                                   e
         Escolho uv = an , w = bn . Observe que uv i w ∈ L para
         i  1, j´ que, neste caso, teriamos am bn para m  n.
                 a
         Logo, por redu¸˜o ao absurdo, L n˜o ´ regular.
                         ca                  a e
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                 96


       • AF com Sa´ (Moore e Mealy) – n˜o se restringe a
                     ıda                     a
         aceita/rejeita, produz uma string de sa´
                                                ıda;
       • M´quina de Mealy – sa´ associada `s transi¸˜es;
          a                   ıda         a        co

                        M = (K, Σ, δ, q0 , F, ∆)

         Onde:
         K conjunto finito de estados;
         Σ alfabeto finito de entrada;
         δ : K × Σ → K × ∆∗ fun¸ao de transi¸ao;
                               c˜           c˜
         q0 ∈ K estado inicial;
         F ⊂ K conjunto de estados finais;
         ∆ alfabeto finito de sa´
                               ıda;
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                     97




       • δ(q, a) = (p, w), com p, q ∈ K, a ∈ Σ, e w ∈ ∆∗ ,
         significa que o AF, estando no estado q e tendo a na
         fita de entrada, muda para o estado p e escreve a
         string w na fita de sa´ıda.
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                      98




         Exemplo: Seja Σ = {x} e ∆ = {a, b}. M ´ uma
                                                e
         m´quina de Mealy que reconhece uma palavra
           a
         w,|w| ≥ 1, tal que w = x+ e produz uma seq¨ˆncia
                                                   ue
         v = (ab)+ , em que |v| = 2|w|.
         Solu¸˜o:
             ca
                         
                           q0
                         @ABC
                         GFED                q1
                                         / G?=
                                           @ABC
                                            89:;
                                            FED
                                                   l
                                                       (x,ab)
                                (x,ab)


         Observa¸ao: arestas s˜o rotuladas com um par (x, y),
                 c˜            a
         onde x ´ o s´
                e    ımbolo lido e y ´ a string produzida na
                                     e
         sa´
           ıda.
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO               99



       • M´quina de Moore – sa´ associada aos estados;
          a                   ıda

                       M = (K, Σ, δ, q0 , F, ∆, δS )

         Onde:
         K conjunto finito de estados;
         Σ alfabeto finito de entrada;
         δ : K × Σ → K fun¸ao de transi¸ao;
                          c˜           c˜
         q0 ∈ K estado inicial;
         F ⊂ K conjunto de estados finais;
         ∆ alfabeto finito de sa´
                               ıda;
         δS : K → ∆∗ fun¸ao (total) de sa´
                        c˜               ıda;
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                         100




         Exemplo: o mesmo anterior
         (xxx · · · x ⇒ ababab · · · ab).
         Solu¸˜o:
             ca
                                                           x
                                                              

                         @ABC
                         GFED
                            q0 ,a       / GFED
                                          @ABC
                                           ?=
                                           89:;
                                           q1 ,b       / ONML
                                                         HIJK
                                                          @ABC
                                                          GFED
                                                          q2 ,ab
                                    x              x


         Observa¸ao: os v´rtices s˜o rotulados com um par
                  c˜       e      a
         (x, y), onde x ´ o nome do estado e y ´ a sa´
                        e                      e     ıda
         produzida pelo estado.
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                     101




       • Equivalˆncia das M´quinas de Moore e Mealy
                e          a
         – Excetuando-se a string vazia, os dois modelos de
           m´quina s˜o equivalentes;
            a       a
         – A m´quina de Moore sempre gera pelo menos a
               a
           palavra associada ao estado inicial, n˜o podendo
                                                 a
           assim gerar a senten¸a vazia;
                               c
         – Prova de equivalˆncia por simula¸ao m´tua (exceto
                           e               c˜   u
           a senten¸a vazia);
                   c
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                                102




         – Teorema: A m´quina de Mealy simula a m´quina
                       a                         a
           de Moore.
            Prova: Suponha MO = (K, Σ, δMO , q0 , F, ∆, δS ) uma
            m´quina de Moore. Seja:
             a

                        ME = (K ∪ {qe }, Σ, δME , qe , F, ∆)

            uma m´quina de Mealy, onde δME ´ definido como
                   a                       e
            segue:
           1. δME (qe , a) = (δMO (q0 , a), δS (q0 )δS (δMO (q0 , a)));
           2. δME (q, a) = (δMO (q, a), δS (δMO (q, a))).
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                      103




                                          a1
                               ONML
                               HIJK
                                q0 ,u0          / ONML
                                                  HIJK
                                                   q1 ,u1
                                     V
                                 a0

                                     
                                       qe e
                                     GFED
                                     @ABC
                                             ee
                                               ee(a1 ,u0 u1 )
                            (a0 ,u0 u0 )          ee
                                                   ee
                                       q0
                                     GFED
                                     @ABC                q1
                                                      / GFED
                                                        @ABC
                                           T (a1 ,u1 )
                                    (a0 ,u0 )
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                      104




         – Observe que o estado qe introduzido ´ referenciado
                                                e
           apenas na primeira transi¸ao executada. Seu
                                     c˜
           objetivo ´ garantir a gera¸ao da sa´ referente ao
                    e                c˜       ıda
           estado inicial q0 de MO;
         – Provar por indu¸ao.
                          c˜
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                105




         – Teorema: A m´quina de Moore simula a m´quina
                       a                         a
           de Mealy;
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                    106



     Exerc´
          ıcios:
      1. Construa um AF M que aceite:
        (a) todas as senten¸as em {0, 1}+ que apresentem
                           c
            cada “1” seguido imediatamente de dois zeros;
        (b) todas as senten¸as em {a, b}∗ de modo que todo
                           c
            “a” apare¸a entre dois “b”;
                      c
        (c) todas as senten¸as de {a, b}+ de modo que o
                           c
            ultimo s´
            ´       ımbolo seja “b” e o n´mero de s´
                                          u        ımbolos
            “a” seja par.
      2. Construa a gram´tica regular equivalente a cada um
                        a
         dos autˆmatos do exerc´ anterior.
                o              ıcio
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                  107




      3. Defina a express˜o regular que representa valores
                        a
         “redondos” em reais (Ex: R$1,00 ou R$200,00 ou
         R$1.000.000,00 ou R$3.000,00).
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO               108




      4. Seja a seguinte gram´tica regular:
                             a

                       S → 0S|1S|0A|0C|1B
                       A → 0A|0
                       B → 1B|1
                       C → 0A|0

         Pede-se:
        (a) o AFND M tal que T (M ) = L(G);
        (b) o AFD M tal que T (M ) = T (M );
        (c) M tal que T (M ) = T (M ) e M seja m´
                                                ınimo.
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO   109



      5. Seja G definida por:

                           S → aB|aD
                           B → bB|bC
                           C → cC|cD
                           D → d
                           E → aB|a

         Pede-se:
        (a) o AF M tal que T (M ) = L(G);
        (b) Determine T (M );
        (c) Minimize M .
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                      110




      6. Seja T (M ) = {abn cm d|0 ≤ n ≤ 2 ∧ m ≥ 1}. Pede-se:
        (a) construa M ;
        (b) construa G tal que L(G) = T (M ).
      7. Construa o AF e a gram´tica regular equivalentes a
                               a
         cada uma das ER a seguir:
        (a) a(b|ca)d∗ (a|b)+ ;
        (b) (a(b|ca)∗ (b|c)a∗ )+ .
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                         111




      8. Projete uma m´quina de Moore que recebendo um
                        a
         valor em reais (ex: R$10.000,00) converta para
         d´lares (suponha rela¸ao 1-1 entre dolar e real – logo,
          o                   c˜
         US$10,000.00).
      9. O mesmo que o exerc´ anterior, usando m´quina
                            ıcio                a
         de Mealy.
3       ´                            ˆ
    GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA         112


     3    Gram´tica Livre de Contexto e
               a
          Autˆmato de Pilha
             o
       • As GLC tem grande importˆncia pois atrav´s delas
                                    a              e
         podemos definir a maioria das estruturas de
         linguagens de programa¸ao;
                               c˜
       • As linguagens livres de contexto representam um
         conjunto mais amplo de linguagens que o das
         linguagens regulares;
       • O autˆmato de pilha (PDA) ´ um autˆmato mais
              o                    e       o
         “poderoso” que o AF;
       • AF    PDA (PDA simula AF e AF n˜o simula PDA);
                                        a
3       ´                            ˆ
    GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA              113




       • Exten¸˜o da defini¸˜o de GLC para permitir
              ca          ca
         produ¸˜es na forma A → ε (chamadas ε-produ¸˜es);
              co                                   co
       • Nova defini¸˜o: P = {A → β|A ∈ N ∧ β ∈ (N ∪ T )∗ };
                   ca
       • Uma GLC ´ ε-livre quando n˜o possui ε-produ¸oes
                     e                 a                c˜
         ou quando possui apenas S → ε, onde S ´ o s´
                                                  e    ımbolo
         inicial da gram´tica, e S n˜o aparece do lado direito
                        a           a
         de nenhuma regra de produ¸ao;
                                     c˜
3       ´                            ˆ
    GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA         114




         ´
       • Arvores de Deriva¸˜o para GLC’s – s˜o
                           ca                 a
         representa¸oes gr´ficas para as deriva¸oes da GLC
                   c˜     a                   c˜
         (formam uma estrutura hier´rquica);
                                    a
3       ´                            ˆ
    GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA                     115



       • Seja G = (N, T, P, S) uma GLC. Uma ´rvore ´ uma
                                            a      e
         a
         ´rvore de deriva¸˜o para G se:
                         ca
         1. todo nodo tem um r´tulo que ´ um s´
                              o         e     ımbolo de V ;
         2. o r´tulo da raiz ´ S;
               o             e
         3. se um nodo A tem um ou mais descendentes, ent˜o
                                                         a
            A ´ um elemento de N ;
               e
         4. se A1 , A2 , . . . , An s˜o descendentes diretos de A, da
                                     a
            esquerda para a direita, ent˜o    a
            A → A1 A2 · · · An ∈ P ;
         5. se D ´ a unica sub-´rvore da raiz e tem r´tulo ε,
                 e ´           a                     o
            ent˜o S → ε ∈ P .
               a
3       ´                            ˆ
    GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA                   116


       • Exemplo: G = ({S, A}, {a, b}, P, S),
         P = {S → a|aAS, A → SbA|SS|ba}. Deriva¸˜o:
                                               ca
         S ⇒ aAS ⇒ aSbAS ⇒ aabAS ⇒ aabbaS ⇒ aabbaa.
         ´
         Arvore de deriva¸˜o:
                         ca

                                   Sd
                                 
                                    d     dd
                                          dd
                                            d
                       a             Ac             Sb
                                        cc          b  bb
                                          cc             bb
                                             cc             bb
                           
                       S             b              Ab            a
                                                     bb
                                                     bb
                                                        bb
                                                          b
                       a             b                            a
3       ´                            ˆ
    GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA        117




       • Profundidade da ´rvore de deriva¸˜o ´ o
                         a               ca e
         comprimento do maior caminho entre a raiz e um
         nodo terminal. No exemplo anterior ´ 3;
                                            e
       • Limite de uma ´rvore de deriva¸˜o ´ a seq¨ˆncia
                          a               ca e       ue
         formada pela concatena¸˜o, da esquerda para a
                                  ca
         direita, das folhas da ´rvore de deriva¸˜o;
                                a               ca
3       ´                            ˆ
    GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA              118


       • Deriva¸ao mais ` esquerda e mais ` direita – a ´rvore
               c˜        a                 a            a
         de deriva¸˜o ignora varia¸oes na ordem em que os
                  ca              c˜
         s´
          ımbolos s˜o substituidos na deriva¸˜o. Assim,
                   a                        ca

                   G = ({E}, {+, ∗, (, ), −, id}, P, E)

                P = {E → E + E|E ∗ E|(E)| − E|id}
         tomando a senten¸a −(id + id) podemos deriva-la das
                           c
         duas seguintes formas:
         1. E ⇒ −E ⇒ −(E) ⇒ −(E + E) ⇒ −(id + E) ⇒
            −(id + id);
         2. E ⇒ −E ⇒ −(E) ⇒ −(E + E) ⇒ −(E + id) ⇒
            −(id + id);
3       ´                            ˆ
    GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA                    119


         Ambas correspondem a mesma ´rvore de deriva¸˜o:
                                    a               ca

                                    Ed
                                ~         dd
                             ~~~            dd
                           ~~                 dd
                          ~
                      −                             Ec
                                                      cc
                                                         cc
                                                          cc
                                                           c
                                    (               Ec            )
                                                       cc
                                                       cc
                                                          cc
                                                            c
                                    E               +             E


                                    id                            id
3       ´                            ˆ
    GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA            120




       • Deriva¸ao mais ` esquerda: s´
               c˜       a            ımbolo substituido ´
                                                        e
         sempre o n˜o-terminal mais ` esquerda na forma
                     a              a
         sentencial;
       • Deriva¸ao mais ` direita: s´
               c˜       a           ımbolo substituido ´
                                                       e
         sempre o n˜o-terminal mais ` direita na forma
                     a                a
         sentencial;
       • Nas duas deriva¸oes mostradas a pouco, a primeira ´
                        c˜                                 e
         mais ` esquerda e a segunda mais ` direita;
              a                           a
3       ´                            ˆ
    GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA             121




       • Exemplo: id + id ∗ id
         Deriva¸ao mais ` esquerda: E ⇒ E + E ⇒ id + E ⇒
               c˜       a
         id + E ∗ E ⇒ id + id ∗ E ⇒ id + id ∗ id
         Deriva¸ao mais ` direita: E ⇒ E + E ⇒
               c˜       a
         E + E ∗ E ⇒ E + E ∗ id ⇒ E + id ∗ id ⇒ id + id ∗ id
         Observa¸ao: se w ∈ L(G) e G ´ uma GLC, ent˜o w
                 c˜                    e              a
         tem pelo menos uma ´rvore de deriva¸ao e,
                             a                c˜
         correspondendo a esta ´rvore existe uma s´ deriva¸˜o
                               a                  o       ca
         mais ` esquerda e uma s´ deriva¸ao mais ` direita.
              a                  o       c˜       a
3       ´                            ˆ
    GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA                                         122



       • Uma GLC ´ amb´gua se para a mesma senten¸a
                    e    ı                       c
         existe mais de uma ´rvore de deriva¸˜o;
                            a               ca
         Exemplo: id + id ∗ id

                         Ea                                                     E
                     Ñ        aa                                              Ñ aaa
                   ÑÑ           aa                                         ÑÑ
                                                                             Ñ     aa
                 ÑÑ               aa                                     ÑÑ          aa
               ÑÑ                                                       Ñ
          E              +              Ea                             Ea       ∗       E
                                    Ñ       aa                       Ñ   aa
                                  ÑÑ          aa                   ÑÑ      aa
                                ÑÑ              aa               ÑÑ          aa
                              ÑÑ                               ÑÑ
          id             E              ∗            E    E          +       E        id


                         id                          id   id                 id
3       ´                            ˆ
    GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA        123




       • Uma linguagem inerentemente amb´gua ´ aquele em
                                         ı   e
         que todas as GLC que a geram s˜o amb´
                                       a     ıguas.
         Exemplo: L = {an bn cm dm |n ≥ 1 ∧ m ≥
         1} {an bm cm dn |n ≥ 1 ∧ m ≥ 1}
3       ´                            ˆ
    GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA          124




         Representada pela seguinte gram´tica:
                                        a

                G = ({S, X, Y, Z, W }, {a, b, c, d}, P, S)

                           S → XY |Z
                           X → ab|aXb
                           Y   → cd|cXd
                           Z → aW d|aZd
                          W → bc|bW c
3       ´                            ˆ
    GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA                                                 125




         Exemplo de deriva¸ao: abcd
                          c˜

                                          SV                                       S
                                      Ö    VV
                                   ÖÖÖ       VV
                                 ÖÖ            VV
                                Ö
                        X                       YU                                 ZV
                       ÖÖ                               UU                    ÖÖ       VV
                     ÖÖ                                   UU                ÖÖ           VV
                                                            UU                             VV
                  ÖÖÖ                                                    ÖÖÖ
              a             b                       c            d   a         WV               d
                                                                              ÖÖ       VV
                                                                             Ö           VV
                                                                           ÖÖ              VV
                                                                         ÖÖ
                                                                     b                          c
3       ´                            ˆ
    GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA          126




       • Transforma¸oes de GLC – tem o objetivo de
                     c˜
         simplifica¸˜o e prepara¸˜o para aplica¸˜es
                   ca            ca           co
         posteriores. Observa¸˜o: a gram´tica transformada
                              ca          a
         deve ser equivalente ` original.
                              a
3       ´                            ˆ
    GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA             127




       • Elimina¸˜o de s´
                ca      ımbolos in´teis
                                  u
         Um s´ımbolo ´ in´til se ele n˜o aparece na deriva¸ao
                     e u              a                   c˜
         de nenhuma senten¸a.
                            c
         est´ril n˜o gera nenhuma seq¨ˆncia de terminais
            e     a                   ue
            pertencente a uma senten¸a;
                                    c
         inalcan¸´vel n˜o aparece em nenhuma forma
                 ca      a
            sentencial da gram´tica.
                              a
3       ´                            ˆ
    GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA              128




       • Determina¸˜o do conjunto de s´
                  ca                  ımbolos f´rteis:
                                               e
         1. Construir o conjunto N0 = ∅ e fazer i = 1;
         2. Repetir
          (a) Ni = {A|A → α ∈ P ∧ α ∈ (Ni−1 ∪ T )∗ };
          (b) i = i + 1;
            at´ que Ni = Ni−1 ;
              e
         3. Ni ´ o conjunto de s´
               e                ımbolos f´rteis.
                                         e
       • Observa¸ao: se o s´
                c˜           ımbolo inicial n˜o fizer parte dos
                                             a
         s´
          ımbolos f´rteis, ent˜o a linguagem gerada pela
                   e          a
         gram´tica ´ vazia.
             a      e
3       ´                            ˆ
    GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA            129



       • Exemplo: G = ({S, A, B, C, D}, {a, b, c, d}, P, S),
         P = {S → aA, A → a|bB, B → b|dD, C → cC|c, D →
         dD}. Solu¸˜o:
                  ca
         1. N0 = ∅;
         2. N1 = {A, B, C};
         3. N2 = {S, A, B, C};
         4. N3 = {S, A, B, C} = N2 .
         Conjunto dos s´
                       ımbolos f´rteis: {S, A, B, C}.
                                e
         Gram´tica simplificada:
             a
         G = ({S, A, B, C}, {a, b, c}, P , S),
         P = {S → aA, A → a|bB, B → b, C → cC|c}.
3       ´                            ˆ
    GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA             130




       • Determina¸˜o do conjunto de s´
                  ca                  ımbolos alcan¸aveis:
                                                   c´
         1. Construir o conjunto V0 = {S} (S=s´
                                              ımbolo inicial)
            e fazer i = 1;
         2. Repetir
          (a) Vi = {X|∃A → αXβ ∈ P ∧ A ∈ Vi−1 ∧ α, β ∈
              (N ∪ T )∗ ∧ X ∈ V } Vi−1 ;
          (b) i = i + 1;
            at´ que Vi = Vi−1 ;
              e
         3. Vi ´ o conjunto de s´
               e                ımbolos alcan¸´veis.
                                             ca
3       ´                            ˆ
    GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA           131


       • Exemplo: G do exemplo anterior.
         G = ({S, A, B, C}, {a, b, c}, P , S),
         P = {S → aA, A → a|bB, B → b, C → cC|c}.
         Solu¸˜o:
             ca
         1. V0 = {S};
         2. V1 = {a, A}      V0 = {S, a, A};
         3. V2 = {a, b, B}     V1 = {S, a, A, b, B};
         4. V3 = {b}    V2 = {S, a, A, b, B} = V2 .
         Conjunto de s´
                      ımbolos alcan¸aveis: {S, A, B, a, b}.
                                   c´
         Gram´tica simplificada:
             a
         G = ({S, A, B}, {a, b}, P , S),
         P = {S → aA, A → a|bB, B → b}.
3       ´                            ˆ
    GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA                132



       • Transforma¸ao de GLC qualquer em GLC ε-livre:
                   c˜
         1. Reunir em um conjunto os n˜o-terminais que
                                       a
            derivam direta ou indiretamente a senten¸a vazia:
                                                    c
            Ne = {A|A ∈ N ∧ A ⇒+ ε};
         2. Construir o conjunto de regras P como segue:
          (a) incluir em P todas as regras de P , com excess˜o a
              daquelas da forma A → ε;
          (b) para cada ocorrˆncia de um s´
                                e            ımbolo Ne do lado
              direito de alguma regra de P , incluir em P mais
              uma regra, substituindo este s´ ımbolo por ε. Isto
              ´, para cada regra de P tipo A → αBβ, B ∈ Ne
              e
              e α, β ∈ V ∗ , incluir em P a regra A → αβ;
3       ´                            ˆ
    GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA            133




         3. Se S ∈ Ne , adicionar a P as regras S → S e
            S → ε, incluindo este novo n˜o-terminal S em
                                          a
            N = N ∪ {S }. Caso contr´rio, trocar os nomes de
                                       a
            S por S e de N por N ;
         4. A nova gram´tica ser´ definida por:
                         a       a
            G = (N , T, P , S ).
3       ´                            ˆ
    GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA        134




       • Exemplos:
         1. P : S → aB, B → bB|ε. Solu¸˜o: Ne = {B} e
                                      ca
            P : S → aB|a, B → bB|b;
         2. P : S → bDCe, D → dD|ε, C → cC|ε. Solu¸ao:
                                                  c˜
            Ne = {D, C} e
            P : S → bDCe|bCe|bDe|be, D → dD|d, C → cC|c;
         3. P : S → aS|ε. Solu¸˜o: Ne = {S} e
                              ca
            P : S → S|ε, S → aS|a.
3       ´                            ˆ
    GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA              135


       • Remo¸˜o de Produ¸˜es Simples – produ¸˜es simples
               ca          co                co
         s˜o produ¸˜es na forma A → B, onde A, B ∈ N :
          a       co
         1. Transformar a GLC em GLC ε-livre, se necess´rio;
                                                       a
         2. Para todo n˜o-terminal de N , construir um
                       a
            conjunto com os n˜o-terminais que ele pode derivar
                             a
            em zero ou mais passos. Isto ´, ∀A ∈ N , construir
                                         e
            NA = {B|A ⇒∗ B};
         3. Se B → α ∈ P e n˜o ´ produ¸˜o simples, adicione a
                            a e       ca
            P as produ¸oes A → α para todo A tal que
                      c˜
            B ∈ NA ;
         4. a GLC equivalente sem produ¸oes simples ´
                                       c˜           e
            G = (N, T, P , S).
3       ´                            ˆ
    GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA         136




       • Exemplos:
         1. P : S → bS|A, A → aA|a. Solu¸˜o: NS = {S, A},
                                        ca
            NA = {A}, e P : S → bS|aA|a, A → aA|a;
         2. P : S → aSb|A, A → aA|B, B → bBc|bc. Solu¸˜o:
                                                     ca
            NS = {S, A, B}, NA = {A, B}, NB = {B}, e
            P : S → aSb|aA|bBc|bc, A → aA|bBc|bc,
            B → bBc|bc.
3       ´                            ˆ
    GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA                137


       • Fatora¸ao de GLC
               c˜
         Uma GLC est´ fatorada se ela ´ determin´
                       a                e           ıstica, isto
         ´, n˜o possui produ¸˜es cujo lado direito inicie com o
         e a                co
         mesmo conjunto de s´ımbolos ou com s´ ımbolos que
         gerem seq¨ˆncias que iniciem com o mesmo conjunto
                   ue
         de s´
             ımbolos. Por exemplo, uma gram´tica fatorada
                                              a
         n˜o poderia apresentar as seguintes regras:
          a

                             A → aB|aC ,

         pois ambas inicial com o terminal a.
         Outro exemplo de gram´tica n˜o-fatorada ´:
                              a      a           e

                     S → A|B     A → ac B → ab .
3       ´                            ˆ
    GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA               138



       • Para fatorar:
         1. as produ¸˜es que apresentam n˜o-determinismo
                     co                  a
            direto, da forma A → αβ|αγ ser˜o substituidas por
                                          a

                                 A → αA
                                A   → β|γ

            sendo A um novo n˜o-terminal;
                             a
         2. o n˜o-determinismo indireto ´ retirado fazendo, nas
               a                         e
            regras de produ¸ao, as deriva¸˜es necess´rias para
                            c˜           co         a
            torna-lo um n˜o-determinismo direto, resolvido com
                          a
            o passo anterior.
3       ´                            ˆ
    GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA          139




         Exemplos:
         1. P : S → aA|aB, A → aA|a, B → b. Solu¸ao:
                                                c˜
            P : S → aS , S → A|B, A → aA , A → A|ε, B → b;
         2. P : S → Ab|ab|baA, A → aab|b. Solu¸ao:
                                              c˜
            (n˜o-determinismo indireto)
              a
            P : S → aabb|bb|ab|baA, A → aab|b e
            P : S → aS |bS , S → abb|b, S → b|aA, A → aab|b.
3       ´                            ˆ
    GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA         140




       • Fatora¸ao ´ importante pois na implementa¸˜o de
                 c˜ e                               ca
         um compilador, o mesmo deve seguir uma gram´tica
                                                        a
         que n˜o apresente n˜o-determinismo pois, caso
               a             a
         contr´rio, no processo de reconhecimento haveria
               a
         “retornos” (backtracking) que acabam reduzindo a
         eficiˆncia do algoritmo de reconhecimento.
             e
3       ´                            ˆ
    GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA         141




       • Teorema: Toda LLC sem ε pode ser definida por
         uma gram´tica que n˜o cont´m s´
                   a         a      e   ımbolos in´teis,
                                                  u
         ε-produ¸˜es, nem produ¸˜es simples.
                co             co
       • Prova: Conseq¨ˆncia dos algoritmos apresentados.
                      ue
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais
Linguagens Formais

Más contenido relacionado

La actualidad más candente

Algoritmos - Paradigmas de Programação
Algoritmos - Paradigmas de ProgramaçãoAlgoritmos - Paradigmas de Programação
Algoritmos - Paradigmas de ProgramaçãoElaine Cecília Gatto
 
Análise Orientada a Objetos - Objetos E Classes
Análise Orientada a Objetos  -   Objetos E ClassesAnálise Orientada a Objetos  -   Objetos E Classes
Análise Orientada a Objetos - Objetos E ClassesCursoSENAC
 
Aula 7 expressão regular
Aula 7   expressão regularAula 7   expressão regular
Aula 7 expressão regularwab030
 
Multimídia: Protocolos de transmissão de áudio e vídeo
Multimídia:  Protocolos de transmissão de áudio e vídeoMultimídia:  Protocolos de transmissão de áudio e vídeo
Multimídia: Protocolos de transmissão de áudio e vídeoFernando Costa
 
Introdução a Padrões de Projeto
Introdução a Padrões de ProjetoIntrodução a Padrões de Projeto
Introdução a Padrões de ProjetoEduardo Mendes
 
2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos
2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos
2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicosComputação Depressão
 
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)Gustavo Zimmermann
 
Herança em Banco de Dados Objeto-Relacional (BDOR)
Herança em Banco de Dados Objeto-Relacional (BDOR)Herança em Banco de Dados Objeto-Relacional (BDOR)
Herança em Banco de Dados Objeto-Relacional (BDOR)Rafael Barbolo
 
Criando um Aplicativo Android para Consumir uma API RESTFul Desenvolvida em A...
Criando um Aplicativo Android para Consumir uma API RESTFul Desenvolvida em A...Criando um Aplicativo Android para Consumir uma API RESTFul Desenvolvida em A...
Criando um Aplicativo Android para Consumir uma API RESTFul Desenvolvida em A...Bruno Vasconcellos
 
Normalização - Banco de Dados
Normalização - Banco de DadosNormalização - Banco de Dados
Normalização - Banco de DadosRoberto Grande
 
Aula5 normalização
Aula5   normalizaçãoAula5   normalização
Aula5 normalizaçãoMatias Silva
 
Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamen...
Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamen...Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamen...
Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamen...Leinylson Fontinele
 
2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos
2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos
2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processosComputação Depressão
 

La actualidad más candente (20)

Algoritmos - Paradigmas de Programação
Algoritmos - Paradigmas de ProgramaçãoAlgoritmos - Paradigmas de Programação
Algoritmos - Paradigmas de Programação
 
POO - 14 - Vetores
POO - 14 - VetoresPOO - 14 - Vetores
POO - 14 - Vetores
 
Análise Orientada a Objetos - Objetos E Classes
Análise Orientada a Objetos  -   Objetos E ClassesAnálise Orientada a Objetos  -   Objetos E Classes
Análise Orientada a Objetos - Objetos E Classes
 
Aula 7 expressão regular
Aula 7   expressão regularAula 7   expressão regular
Aula 7 expressão regular
 
Paradigmas do Ruby
Paradigmas do RubyParadigmas do Ruby
Paradigmas do Ruby
 
POO - Aula 10 - Polimorfismo
POO - Aula 10 - PolimorfismoPOO - Aula 10 - Polimorfismo
POO - Aula 10 - Polimorfismo
 
Multimídia: Protocolos de transmissão de áudio e vídeo
Multimídia:  Protocolos de transmissão de áudio e vídeoMultimídia:  Protocolos de transmissão de áudio e vídeo
Multimídia: Protocolos de transmissão de áudio e vídeo
 
POO - 13 - Arrays em Java
POO - 13 - Arrays em JavaPOO - 13 - Arrays em Java
POO - 13 - Arrays em Java
 
Ficheiros em JAVA
Ficheiros em JAVAFicheiros em JAVA
Ficheiros em JAVA
 
Introdução a Padrões de Projeto
Introdução a Padrões de ProjetoIntrodução a Padrões de Projeto
Introdução a Padrões de Projeto
 
2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos
2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos
2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos
 
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)
 
Herança em Banco de Dados Objeto-Relacional (BDOR)
Herança em Banco de Dados Objeto-Relacional (BDOR)Herança em Banco de Dados Objeto-Relacional (BDOR)
Herança em Banco de Dados Objeto-Relacional (BDOR)
 
Criando um Aplicativo Android para Consumir uma API RESTFul Desenvolvida em A...
Criando um Aplicativo Android para Consumir uma API RESTFul Desenvolvida em A...Criando um Aplicativo Android para Consumir uma API RESTFul Desenvolvida em A...
Criando um Aplicativo Android para Consumir uma API RESTFul Desenvolvida em A...
 
Normalização - Banco de Dados
Normalização - Banco de DadosNormalização - Banco de Dados
Normalização - Banco de Dados
 
Estrutura de Dados - Grafos
Estrutura de Dados - GrafosEstrutura de Dados - Grafos
Estrutura de Dados - Grafos
 
POO - 07 - Operadores do Java
POO - 07 - Operadores do  JavaPOO - 07 - Operadores do  Java
POO - 07 - Operadores do Java
 
Aula5 normalização
Aula5   normalizaçãoAula5   normalização
Aula5 normalização
 
Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamen...
Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamen...Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamen...
Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamen...
 
2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos
2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos
2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos
 

Similar a Linguagens Formais

Gramáticas E Linguagens Formais
Gramáticas E Linguagens FormaisGramáticas E Linguagens Formais
Gramáticas E Linguagens Formaisguest47ac6
 
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 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
 
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
 
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 2 - PIE - LFA - (2018.2) CCO 6 NA
Aula 2 - PIE - LFA - (2018.2) CCO 6 NAAula 2 - PIE - LFA - (2018.2) CCO 6 NA
Aula 2 - PIE - LFA - (2018.2) CCO 6 NACloves da Rocha
 
Cronograma da Disciplina Aspectos Teóricos da Computação
Cronograma da Disciplina Aspectos Teóricos da ComputaçãoCronograma da Disciplina Aspectos Teóricos da Computação
Cronograma da Disciplina Aspectos Teóricos da Computaçãowab030
 
Teoria Lista Exercicios 1.0
Teoria Lista Exercicios 1.0Teoria Lista Exercicios 1.0
Teoria Lista Exercicios 1.0Thayse
 
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
 
Aula 9 propriedadedas linguagensregulares
Aula 9   propriedadedas linguagensregularesAula 9   propriedadedas linguagensregulares
Aula 9 propriedadedas linguagensregulareswab030
 
Tecnicas programacao i_c_p1
Tecnicas programacao i_c_p1Tecnicas programacao i_c_p1
Tecnicas programacao i_c_p1D M
 

Similar a Linguagens Formais (16)

Gramáticas E Linguagens Formais
Gramáticas E Linguagens FormaisGramáticas E Linguagens Formais
Gramáticas E Linguagens Formais
 
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 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...
 
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
 
02 linguagens e gramaticas
02   linguagens e gramaticas02   linguagens e gramaticas
02 linguagens e gramaticas
 
04 propriedades das linguagens regulares
04   propriedades das linguagens regulares04   propriedades das linguagens regulares
04 propriedades das linguagens regulares
 
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
 
06 linguagens livres do contexto
06   linguagens livres do contexto06   linguagens livres do contexto
06 linguagens livres do contexto
 
Aula 2 - PIE - LFA - (2018.2) CCO 6 NA
Aula 2 - PIE - LFA - (2018.2) CCO 6 NAAula 2 - PIE - LFA - (2018.2) CCO 6 NA
Aula 2 - PIE - LFA - (2018.2) CCO 6 NA
 
01 introducao e conceitos basicos
01   introducao e conceitos basicos01   introducao e conceitos basicos
01 introducao e conceitos basicos
 
Cronograma da Disciplina Aspectos Teóricos da Computação
Cronograma da Disciplina Aspectos Teóricos da ComputaçãoCronograma da Disciplina Aspectos Teóricos da Computação
Cronograma da Disciplina Aspectos Teóricos da Computação
 
Teoria Lista Exercicios 1.0
Teoria Lista Exercicios 1.0Teoria Lista Exercicios 1.0
Teoria Lista Exercicios 1.0
 
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
 
Aula 9 propriedadedas linguagensregulares
Aula 9   propriedadedas linguagensregularesAula 9   propriedadedas linguagensregulares
Aula 9 propriedadedas linguagensregulares
 
Tecnicas programacao i_c_p1
Tecnicas programacao i_c_p1Tecnicas programacao i_c_p1
Tecnicas programacao i_c_p1
 
Python 03 - Sintaxe
Python 03 - SintaxePython 03 - Sintaxe
Python 03 - Sintaxe
 

Más de Carlos Campani

Técnicas de integração
Técnicas de integraçãoTécnicas de integração
Técnicas de integraçãoCarlos Campani
 
Lista de exercícios 3
Lista de exercícios 3Lista de exercícios 3
Lista de exercícios 3Carlos Campani
 
Lista de exercícios 2
Lista de exercícios 2Lista de exercícios 2
Lista de exercícios 2Carlos Campani
 
Aplicações da integração
Aplicações da integraçãoAplicações da integração
Aplicações da integraçãoCarlos Campani
 
Lista de exercícios 1
Lista de exercícios 1Lista de exercícios 1
Lista de exercícios 1Carlos Campani
 
ANÁLISE COMPLETA DE UMA FUNÇÃO
ANÁLISE COMPLETA DE UMA FUNÇÃOANÁLISE COMPLETA DE UMA FUNÇÃO
ANÁLISE COMPLETA DE UMA FUNÇÃOCarlos Campani
 
PROPRIEDADES DAS FUNÇÕES
PROPRIEDADES DAS FUNÇÕESPROPRIEDADES DAS FUNÇÕES
PROPRIEDADES DAS FUNÇÕESCarlos Campani
 
Funções, suas propriedades e gráfico
Funções, suas propriedades e gráficoFunções, suas propriedades e gráfico
Funções, suas propriedades e gráficoCarlos Campani
 
Solução de equações modulares
Solução de equações modularesSolução de equações modulares
Solução de equações modularesCarlos Campani
 
Equações polinomiais
Equações polinomiaisEquações polinomiais
Equações polinomiaisCarlos Campani
 
Instruções de Aprendiz
Instruções de AprendizInstruções de Aprendiz
Instruções de AprendizCarlos Campani
 
Álgebra básica, potenciação, notação científica, radiciação, polinômios, fato...
Álgebra básica, potenciação, notação científica, radiciação, polinômios, fato...Álgebra básica, potenciação, notação científica, radiciação, polinômios, fato...
Álgebra básica, potenciação, notação científica, radiciação, polinômios, fato...Carlos Campani
 

Más de Carlos Campani (20)

Técnicas de integração
Técnicas de integraçãoTécnicas de integração
Técnicas de integração
 
Lista de exercícios 3
Lista de exercícios 3Lista de exercícios 3
Lista de exercícios 3
 
Lista de exercícios 2
Lista de exercícios 2Lista de exercícios 2
Lista de exercícios 2
 
Aplicações da integração
Aplicações da integraçãoAplicações da integração
Aplicações da integração
 
Lista de exercícios 1
Lista de exercícios 1Lista de exercícios 1
Lista de exercícios 1
 
Integral
IntegralIntegral
Integral
 
Semana 14
Semana 14 Semana 14
Semana 14
 
Semana 13
Semana 13 Semana 13
Semana 13
 
Semana 12
Semana 12Semana 12
Semana 12
 
Semana 11
Semana 11Semana 11
Semana 11
 
Semana 10
Semana 10 Semana 10
Semana 10
 
Semana 9
Semana 9 Semana 9
Semana 9
 
ANÁLISE COMPLETA DE UMA FUNÇÃO
ANÁLISE COMPLETA DE UMA FUNÇÃOANÁLISE COMPLETA DE UMA FUNÇÃO
ANÁLISE COMPLETA DE UMA FUNÇÃO
 
PROPRIEDADES DAS FUNÇÕES
PROPRIEDADES DAS FUNÇÕESPROPRIEDADES DAS FUNÇÕES
PROPRIEDADES DAS FUNÇÕES
 
Funções, suas propriedades e gráfico
Funções, suas propriedades e gráficoFunções, suas propriedades e gráfico
Funções, suas propriedades e gráfico
 
Solução de equações modulares
Solução de equações modularesSolução de equações modulares
Solução de equações modulares
 
Equações polinomiais
Equações polinomiaisEquações polinomiais
Equações polinomiais
 
PROVAS DE TEOREMAS
PROVAS DE TEOREMASPROVAS DE TEOREMAS
PROVAS DE TEOREMAS
 
Instruções de Aprendiz
Instruções de AprendizInstruções de Aprendiz
Instruções de Aprendiz
 
Álgebra básica, potenciação, notação científica, radiciação, polinômios, fato...
Álgebra básica, potenciação, notação científica, radiciação, polinômios, fato...Álgebra básica, potenciação, notação científica, radiciação, polinômios, fato...
Álgebra básica, potenciação, notação científica, radiciação, polinômios, fato...
 

Linguagens Formais

  • 1. 1 Disciplina de Linguagens Formais Prof. Carlos A. P. Campani 2 de maio de 2006
  • 2. 2 Copyright c 2005 Carlos A. P. Campani. ´ E garantida a permiss˜o para copiar, distribuir e/ou a modificar este documento sob os termos da Licen¸a de c Documenta¸ao Livre GNU (GNU Free Documentation c˜ License), Vers˜o 1.2 ou qualquer vers˜o posterior a a publicada pela Free Software Foundation; sem Se¸oes c˜ Invariantes, Textos de Capa Frontal, e sem Textos de Quarta Capa. Uma c´pia da licen¸a ´ inclu´ na se¸ao o c e ıda c˜ intitulada “GNU Free Documentation License”. veja: http://www.ic.unicamp.br/~norton/fdl.html.
  • 3. 3 Objetivos • Formalizar o conceito de linguagem; • Apresentar uma classifica¸ao de linguagens baseada c˜ nesta formaliza¸ao; c˜ • Fornecer ferramentas para implementar compiladores; • Relacionar a hierarquia de linguagens com o conceito de computabilidade.
  • 4. 4 S´ mula da Disciplina u 1. Introdu¸ao ` Teoria de Linguagens Formais; c˜ a • Alfabetos, Senten¸as e Linguagens; c • Gram´ticas e Reconhecedores; a • Tipos de Gram´ticas/Linguagens (Hierarquia de a Chomsky);
  • 5. 5 2. Gram´ticas Regulares e Autˆmatos Finitos; a o • Defini¸ao de Gram´tica Regular (GR); c˜ a • Defini¸ao de Autˆmato Finito; c˜ o • Autˆmato Finito N˜o-Determin´ o a ıstico; • Rela¸ao entre Autˆmato Finito e GR; c˜ o • Minimiza¸ao de Autˆmato Finito; c˜ o • Express˜es Regulares; o • Bombeamento para Linguagens Regulares; • M´quinas de Moore e Mealy; a
  • 6. 6 3. Gram´ticas Livres de Contexto e Autˆmatos de a o Pilha; • Defini¸ao de GLC; c˜ ´ • Arvores de Deriva¸ao e Ambig¨idade; c˜ u • Transforma¸oes em GLC: Elimina¸˜o de S´ c˜ ca ımbolos In´teis; Transforma¸ao em uma GLC ε-Livre; u c˜ Remo¸ao de Produ¸oes Simples; Fatora¸˜o; c˜ c˜ ca Elimina¸ao de Recurs˜o ` Esquerda; c˜ a a • Formas Canˆnicas: Forma Normal de Chomsky; o Forma Normal de Greibach; • Autˆmatos de Pilha (PDA); o • Rela¸ao entre PDA e GLC; c˜
  • 7. 7 4. Reconhecedor – Algoritmo CYK; 5. Linguagens Tipo 0 e M´quinas de Turing; a 6. Linguagens Sens´ ıveis ao Contexto e Autˆmatos de o Fita Limitada; 7. Hierarquia de Chomsky (revisitada).
  • 8. 8 Bibliografia • Introduction to Automata Theory, Languages, and Computation, Hopcroft e Ullman; • Linguagens Formais e Autˆmatos, Paulo Blauth o Menezes.
  • 9. 9 Links (Lˆminas) a http://www.ufpel.tche.br/~campani/lingformal.pdf (Lˆminas para impress˜o) a a http://www.ufpel.tche.br/~campani/lingformal4.ps.gz
  • 10. 1 ¸˜ INTRODUCAO 10 1 Introdu¸˜o ca • Uma linguagem ´ um meio de comunica¸˜o utilizado e ca por elementos de uma determinada comunidade. Formada por: – Conjunto de palavras; – Conjunto de regras gramaticais; • Uma linguagem ´ formal quando pode ser e representada atrav´s de um sistema com sustenta¸˜o e ca matem´tica. Formada por: a – Sintaxe (estrutura) – foco da nossa disciplina; – Semˆntica (significado) – n˜o interessa para n´s. a a o
  • 11. 1 ¸˜ INTRODUCAO 11 • Alfabeto (ou vocabul´rio) ´ um conjunto finito de a e s´ ımbolos. Ex: d´ıgitos, letras, etc. {a, b, c, . . . , z} {0, 1} • Senten¸a (ou palavra, ou string) sobre um alfabeto ´ c e qualquer seq¨ˆncia finita de s´ ue ımbolos do alfabeto. Ex: Seja o alfabeto V = {0, 1}, s˜o senten¸as v´lidas a c a 001, 1010, etc. • O tamanho (ou comprimento) de uma senten¸a ´c e dado pelo n´mero de s´ u ımbolos que a comp˜e. Ex: o V = {a, b, c}, senten¸a w = ab, tamanho |w| = 2; c
  • 12. 1 ¸˜ INTRODUCAO 12 • A senten¸a que n˜o cont´m s´ c a e ımbolos (tamanho zero) ´ chamada de senten¸a vazia, sendo denotada por ε e c (|ε| = 0); • Seja V um alfabeto. Representamos por: – V ∗ – conjunto de todas as senten¸as compostas de c s´ ımbolos de V incluindo a senten¸a vazia; c – V + = V ∗ − {ε}; Exemplo: V = {0, 1}, V ∗ = {ε, 0, 1, 00, 01, 10, 11, 000, 001, 010, . . .}, V + = {0, 1, 00, 01, 10, 11, 000, 001, 010, . . .}.
  • 13. 1 ¸˜ INTRODUCAO 13 Linguagem ´ qualquer conjunto de senten¸as sobre um e c alfabeto. ou Uma linguagem L sobre um alfabeto V ´ tal que L ⊆ V ∗ . e
  • 14. 1 ¸˜ INTRODUCAO 14 • Tipos de linguagens: finitas, vazias e infinitas; • Representa¸ao: c˜ – Listando as palavras (s´ finita); o – Descri¸ao alg´brica. Ex: {an bn cn |n ≥ 1}. c˜ e Nota¸ao: c˜ n vezes aaa · · · a = an ; – Definindo um algoritmo que determina (sim ou n˜o) se uma senten¸a pertence a uma linguagem a c (Reconhecimento). Ex: autˆmato finito; o – Definindo um mecanismo que gera todas as senten¸as da linguagem em alguma ordem c (Gera¸˜o). Ex: gram´tica. ca a
  • 15. 1 ¸˜ INTRODUCAO 15 • Uma gram´tica serve para definir qual o subconjunto a de senten¸as que faz parte de uma determinada c linguagem. Ela ´ um dispositivo formal para e especificar uma linguagem potencialmente infinita de uma forma finita;
  • 16. 1 ¸˜ INTRODUCAO 16 • Nota¸˜o Formal de Gram´tica ca a Uma gram´tica G ´ definida por uma qu´drupla a e a G = (N, T, P, S) onde: N conjunto finito de n˜o-terminais; a T conjunto finito de terminais; P conjunto finito de regras de produ¸ao; c˜ S s´ ımbolo inicial da gram´tica. a Observa¸oes: N T = ∅, V = N c˜ T, S ∈ N, P = {α → β|α ∈ V + ∧ β ∈ V ∗ }.
  • 17. 1 ¸˜ INTRODUCAO 17 Exemplo: gera n´meros inteiros u G = (N, T, P, I) N = {I, D} T = {0, 1, 2, . . . , 9} P = {I → D, I → DI, D → 0, D → 1, . . . , D → 9} ou P : I → D|DI, D → 0|1|2| · · · |9 Exerc´ıcio: Reescrever tentando evitar n´meros tipo u 0015.
  • 18. 1 ¸˜ INTRODUCAO 18 • Conven¸oes: c˜ S´ ımbolos n˜o-terminais N = {A, B, C, . . . T }; a S´ ımbolos terminais T = {a, b, c, . . . t}; S´ ımbolo terminal ou n˜o-terminal a N T = {U, V, . . . Z}; Seq¨ˆncias de terminais T ∗ = {u, v, . . . z}; ue Seq¨ˆncias de n˜o-terminais e terminais ue a (N T )∗ = {α, β, γ, . . .}.
  • 19. 1 ¸˜ INTRODUCAO 19 • Deriva¸˜o (⇒) ´ uma opera¸ao de substitui¸ao ca e c˜ c˜ efetuada de acordo com as regras de produ¸˜o da ca gram´tica. a Formalmente: γαδ ⇒ γβδ se α → β ∈ P e γ, δ ∈ V ∗ . Exemplo: G = ({S, A, B}, {0, 1}, {S → AB, A → 0|AB, B → 1|1B}, S), e S ⇒ AB ⇒ ABB ⇒ 0BB ⇒ 01B ⇒ 011B .
  • 20. 1 ¸˜ INTRODUCAO 20 • Uma seq¨ˆncia de deriva¸oes com zero ou mais ue c˜ passos (⇒∗ ): Formalmente: α1 ⇒∗ αm se α1 ⇒ α2 , α2 ⇒ α3 , . . . , αm−1 ⇒ αm , α1 , α2 , . . . , αm ∈ V ∗ . • Garantindo pelo menos uma substitui¸ao (⇒+ ): c˜ Formalmente: α1 ⇒+ αm se α1 ⇒ α2 , α2 ⇒∗ αm , α1 , α2 , . . . , αm ∈ V ∗ .
  • 21. 1 ¸˜ INTRODUCAO 21 • Uma senten¸a de uma linguagem ´ uma seq¨ˆncia c e ue formada por terminais, obtida a partir do s´ ımbolo inicial da gram´tica desta linguagem, atrav´s de a e deriva¸oes sucessivas. c˜ Formalmente: S ⇒+ u. • Uma forma sentencial ´ uma seq¨ˆncia qualquer, e ue composta de terminais e n˜o-terminais, obtida a a partir do s´ ımbolo inicial da gram´tica atrav´s de a e deriva¸oes sucessivas. c˜ Formalmente: S ⇒∗ α.
  • 22. 1 ¸˜ INTRODUCAO 22 • A linguagem gerada por uma gram´tica a G = (N, T, P, S) ´ o conjunto de todas as senten¸as e c da linguagem obtidas da gram´tica por deriva¸oes a c˜ sucessivas. Formalmente: L(G) = {w|w ∈ T ∗ ∧ S ⇒∗ w}.
  • 23. 1 ¸˜ INTRODUCAO 23 Ex: G = ({S}, {0, 1}, P, S) com P = {S → 0S1, S → 01}. Assim, S ⇒ 0S1 ⇒ 00S11 ⇒ 03 S13 ⇒ · · · que ´ igual a 0n 1n e para n ≥ 1. Logo, L(G) = {0n 1n |n ≥ 1}. Nota¸˜o: ca n vezes aaa · · · a = an .
  • 24. 1 ¸˜ INTRODUCAO 24 Exerc´ ıcio: Seja a seguinte gram´tica: a G = ({S, A, B}, {0, 1}, P, S) P = {S → ASBB|BSAA|0, A → 01|01A, B → 10|10B} Obtenha as deriva¸oes para as seguintes senten¸as: c˜ c 1. 0101010; 2. 101000101010101.
  • 25. 1 ¸˜ INTRODUCAO 25 • Tipos de Gram´ticas – segundo a hierarquia de a Chomsky existem quatro tipos: Tipo 0 ou Irrestritas P = {α → β|α ∈ V + , β ∈ V ∗ }; Tipo 1 ou Sens´ ıvel ao Contexto Se α → β ∈ P ent˜o |α| ≤ |β|. a Outra forma: P = {α1 Aα2 → α1 βα2 |α1 , α2 ∈ V ∗ , β ∈ V + , A ∈ N }; Tipo 2 ou Livre de Contexto P = {α → β|α ∈ N ∧ β = ε}; Tipo 3 ou Regular A → aB ou A → a, ou seja, P = {A → aX|A ∈ N, a ∈ T, X ∈ N ∪ {ε}}.
  • 26. 1 ¸˜ INTRODUCAO 26 • Gram´ticas lineares: a Gram´tica linear ` direita Se todas as produ¸oes a a c˜ s˜o da forma A → wB ou A → w, com w ∈ T ∗ ; a Gram´tica linear ` esquerda Se todas as a a produ¸oes s˜o da forma A → Bw ou A → w; c˜ a Gram´tica linear unit´ria ` direita linear ` a a a a direita com |w| ≤ 1; Gram´tica linear unit´ria ` esquerda linear ` a a a a esquerda com |w| ≤ 1. • Teorema: As quatro defini¸oes de gram´ticas lineares c˜ a s˜o equivalentes. a
  • 27. 1 ¸˜ INTRODUCAO 27 • Defini¸˜o alternativa de gram´tica regular: ca a Uma gram´tica regular ´ qualquer gram´tica linear. a e a
  • 28. 1 ¸˜ INTRODUCAO 28 Regulares Livres de Contexto ´ Sensiveis ao Contexto Tipo 0 Tipo 3 ⊂ Tipo 2 ⊂ Tipo 1 ⊂ Tipo 0 ⊂ T ∗
  • 29. 1 ¸˜ INTRODUCAO 29 • Ex: G = ({S, A, B}, {a, b}, P, S) P = {S → aB|bA, A → a|aS|bAA, B → b|bS|aBB} 1. Tipo da gram´tica? a 2. L(G)?
  • 30. 1 ¸˜ INTRODUCAO 30 • Respostas: 1. Livre de contexto; 2. L(G) ´ o conjunto de todas as palavras em T ∗ que e tem o mesmo n´mero de a’s e b’s. u
  • 31. 1 ¸˜ INTRODUCAO 31 • Linguagens classificadas segundo as gram´ticas em: a 1. Recursivamente enumer´veis ou RE a (gram´tica Tipo 0) – conjuntos recursivamente a enumer´veis est˜o relacionado com a m´quina de a a a Turing, fun¸˜es parciais recursivas e co computabilidade; 2. Linguagem sens´ ao contexto ou LSC ıvel (gram´tica Tipo 1); a 3. Linguagem livre de contexto ou LLC (gram´tica Tipo 2); a 4. Linguagem Regular ou LR (gram´tica Tipo 3). a
  • 32. 1 ¸˜ INTRODUCAO 32 • Vamos extender as defini¸oes das gram´ticas Tipo 1 c˜ a e 2 para permitir produ¸˜es do tipo S → ε. Isto s´ ´ co oe poss´ se S n˜o aparece em lado direito de ıvel a nenhuma produ¸˜o. Assim, S → ε somente ser´ ca a utilizada para originar a senten¸a vazia; c L(G ) = L(G) {ε} • Para introduzir S → ε em gram´tica que viola a a condi¸˜o anterior, devemos transforma-la em uma ca equivalente que obede¸a a restri¸ao; c c˜ • Gram´ticas equivalentes s˜o aquelas que geram a a a mesma linguagem;
  • 33. 1 ¸˜ INTRODUCAO 33 • Para transformar incluiremos um novo s´ ımbolo n˜o-terminal (S ) que passar´ a ser o novo s´ a a ımbolo inicial. Em seguida, incluiremos em P todas as regras que tenham o s´ ımbolo S no lado esquerdo, substituindo este por S , e incluindo ainda uma regra S → ε; Ex1: G = ({S, A}, {a}, P, S) com P = {S → aA, A → a|aA}. Obtemos G = ({S, A}, {a}, P , S) com P = {S → aA|ε, A → a|aA};
  • 34. 1 ¸˜ INTRODUCAO 34 Ex2: G = ({S, A}, {a}, P, S) com P = {S → aA, A → a|aS}. Obtemos G = ({S , S, A}, {a}, P , S ) com P = {S → aA|ε, S → aA, A → a|aS};
  • 35. 1 ¸˜ INTRODUCAO 35 Exerc´ ıcios: 1. Construa uma gram´tica G tal que: a (a) L(G) = {an bm |n ≥ 0 ∧ m ≥ 1}; (b) L(G) = {ai bj ci |i ≥ 0 ∧ j ≥ 1}. 2. Construa uma gram´tica regular G tal que: a L(G) = {w|w ∈ {0, 1}+ e n˜o tem 1 s consecutivos} a 3. Construa uma gram´tica livre de contexto G tal que: a L(G) = {w|w ∈ {0, 1, 2}+ e todos os zeros sejam consecutivos}
  • 36. 1 ¸˜ INTRODUCAO 36 4. Seja G definida por: S → aS|bB, B → cB|cC, C → cS|c Pede-se: (a) determine L(G); (b) construa G tal que L(G ) = L(G) {ε}; (c) verifique se as senten¸as abaixo pertencem a L(G): c • abccc; • bccabcc; • abccbbc.
  • 37. 1 ¸˜ INTRODUCAO 37 5. Construa uma GLC G tal que L(G) seja o conjunto de express˜es aritm´ticas v´lidas. Os terminais s˜o o e a a identificadores (id), parˆnteses (“(” e “)”), e os e operadores +, ∗, e − un´rio. a
  • 38. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 38 2 Gram´ticas Regulares e a Autˆmato Finito o • O autˆmato finito (AF) ´ uma m´quina abstrata que o e a reconhece linguagens regulares; • Modelo matem´tico com entradas e sa´ a ıdas. Se ´ e fornecido ao AF uma seq¨ˆncia de s´ ue ımbolos como entrada, ele responder´ se esta seq¨ˆncia pertence ` a ue a linguagem ou n˜o; a • O AF pode assumir um n´mero finito de estados; u • Um estado resume os estados anteriores pelos quais passou e os s´ ımbolos que j´ foram lidos na entrada. a
  • 39. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 39 • Defini¸˜o formal de autˆmato finito ca o Um autˆmato finito M sobre um alfabeto Σ ´ um o e sistema (K, Σ, δ, q0 , F ) onde: K – conjunto finito, n˜o vazio, de estados; a Σ – alfabeto finito de entrada; δ – fun¸ao de transi¸ao de estados, c˜ c˜ δ :K ×Σ {ε} → K ; q0 ∈ K estado inicial; F ⊂ K conjunto de estados finais.
  • 40. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 40 Fita de entrada 0 1 0 0 1 0 1 Cabeçote Controle Finito δ(q, a) = p para q, p ∈ K e a ∈ Σ, significando que estando no estado q e lendo o s´ımbolo a na fita de entrada podemos mudar para o estado p avan¸ando o c cabe¸ote uma posi¸ao. c c˜
  • 41. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 41 • Diagrama de Transi¸˜o ca – Outra maneira de representar um autˆmato finito; o – Grafo direcionado e rotulado; – Os v´rtices representam os estados, desenhados e como c´ ırculos; – As arestas representam as transi¸oes entre dois c˜ estados, sendo o r´tulo o s´ o ımbolo reconhecido na entrada; – O estado inicial ´ marcado com uma seta; e – Os estados finais s˜o indicados por c´ a ırculos duplos.
  • 42. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 42 Ex: a a b q0 @ABC GFED q1 / GFED @ABC q2 / G?= @ABC 89:; FED M = ({q0 , q1 , q2 }, {a, b}, δ, q0 , {q2 }), e δ(q0 , a) = q1 , δ(q1 , a) = q1 , δ(q1 , b) = q2 . Logo, T (M ) = {an b|n ≥ 1}.
  • 43. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 43 • Tabela de Transi¸ao de Estados c˜ – Uma terceira forma de representar um AF; – Tabela indicando na vertical os estados, e na horizontal os s´ ımbolos do alfabeto. No cruzamento est˜o as transi¸oes poss´ a c˜ ıveis; – O estado inicial ´ indicado por uma seta, e os e estados finais por asteriscos.
  • 44. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 44 Ex1: δ a b → q0 q1 - q1 q1 q2 *q2 - - Exerc´ ıcio: 1. Descreva formalmente o AF; 2. Desenhe o diagrama de transi¸˜o equivalente. ca
  • 45. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 45 Ex2: AF que reconhece senten¸as em {0, 1}∗ as quais n˜o c a cont´m dois ou mais 1’s consecutivos. e 0 1 + GFED q0 / GFED k @ABC ?= 89:; q1 @ABC ?= 89:; 0 M = (K, Σ, δ, q0 , F ), K = {q0 , q1 }, Σ = {0, 1}, F = {q0 , q1 }, com δ(q0 , 0) = q0 , δ(q0 , 1) = q1 , δ(q1 , 0) = q0 . Exerc´ ıcio: Apresente a tabela de transi¸ao. c˜
  • 46. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 46 Tabela: δ 0 1 → ∗q0 q0 q1 *q1 q0 -
  • 47. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 47 Ex3: Identificadores de linguagens de programa¸˜o ca S → L|LR, R → L|D|LR|DR, L → a|b|c · · · |z, D → 0|1|2| · · · |9 a|b|···|z|0|1|···|9 a|b|···|z q0 GFED @ABC q1 / G?= @ABC 89:; FED Exerc´ ıcios: 1. Inteiros com ou sem sinal; 2. Reais (uma casa ap´s a v´ o ırgula) com sinal opcional.
  • 48. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 48 a ca ınio K × Σ∗ : • Extens˜o da fun¸˜o δ para o dom´ ˆ 1. δ(q, ε) = q; ˆ ˆ 2. δ(q, ua) = δ(δ(q, u), a) para u ∈ Σ∗ e a ∈ Σ; ˆ • δ(q, u) = p significa que M , iniciando no estado q e tendo a seq¨ˆncia u na fita de entrada, entrar´ no ue a estado p, ap´s o cabe¸ote mover-se para a direita |u| o c c´lulas; e c e ˆ • Uma senten¸a u ´ aceita por M se δ(q0 , u) = p para algum p ∈ F , ou seja: ˆ T (M ) = {u|δ(q0 , u) = p ∧ p ∈ F }; • Qualquer conjunto de senten¸as aceito por um AF ´ c e dito ser regular (linguagem regular ).
  • 49. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 49 Exemplo: M = (K, Σ, δ, q0 , F ), Σ = {0, 1}, K = {q0 , q1 , q2 , q3 }, F = {q0 }. δ(q0 , 0) = q2 δ(q1 , 0) = q3 δ(q2 , 0) = q0 δ(q3 , 0) = q1 δ(q0 , 1) = q1 δ(q1 , 1) = q0 δ(q2 , 1) = q3 δ(q3 , 1) = q2
  • 50. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 50 1 + GFED q0 @ABC GFED k ?= 89:; q1 @ABC T 1 T 0 0 0 0 1 + GFED q2 @ABC GFED k q3 @ABC 1
  • 51. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 51 δ 0 1 → ∗q0 q2 q1 q1 q3 q0 q2 q0 q3 q3 q1 q2 Reconhecimento de 110101: (q0 , 110101) ⇒ (q1 , 10101) ⇒ (q0 , 0101) ⇒ (q2 , 101) ⇒ (q3 , 01) ⇒ (q1 , 1) ⇒ (q0 , ε). Assim, 110101 ∈ T (M ). Reconhecimento de 1011: (q0 , 1011) ⇒ (q1 , 011) ⇒ (q3 , 11) ⇒ (q2 , 1) ⇒ (q3 , ε). Assim, 1011 ∈ T (M ).
  • 52. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 52 T (M ) = {w|w ∈ {0, 1}∗ e w cont´m um n´mero par de 0 s e 1 s}. e u
  • 53. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 53 • Autˆmato Finito N˜o-Determin´ o a ıstico (AFND) Um autˆmato finito n˜o-determin´stico ´ um sistema o a ı e (K, Σ, δ, q0 , F ) onde: K conjunto finito, n˜o vazio, de estados; a Σ alfabeto de entrada; δ : K × Σ → Partes(K) fun¸ao de transi¸ao (n˜o c˜ c˜ a determin´ ıstico); q0 ∈ K estado inicial; F ⊂ K conjunto de estados finais.
  • 54. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 54 • Diferen¸a entre AF e o AFND: δ(q, a) ´ um conjunto c e de estados (possivelmente vazio) ao inv´s de um e unico estado; ´ • Assim, δ(q, a) = {p1 , p2 , . . . , pk } significa que M estando no estado q e tendo a na posi¸˜o do cabe¸ote ca c na fita de entrada, move uma c´lula para a direita e e escolhe qualquer estado entre p1 , p2 , . . . , pk como pr´ximo estado. o
  • 55. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 55 ınio K × Σ∗ : • Extendendo δ para o dom´ ˆ 1. δ(q, ε) = {q}; ˆ 2. δ(q, ua) = ˆ δ(p, a) para todo u ∈ Σ∗ e p∈δ(q,u) a ∈ Σ; • Uma senten¸a u ´ aceita por M se existe um estado c e ˆ p ∈ F e p ∈ δ(q0 , u); ˆ • T (M ) = {u|p ∈ δ(q0 , u) ∧ p ∈ F }.
  • 56. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 56 Ex: AFND que aceita o conjunto de todas as senten¸as c bin´rias que cont´m dois 0’s ou 1’s consecutivos. a e 0|1 0 q GFED @ABC 3 q4 / G?= @ABC 89:; FED 0|1 0 }} }} } }}}} q0 e / GFED @ABC ee ee 0|1 ee 1 ee 1 q1 GFED @ABC q2 / G?= @ABC 89:; FED
  • 57. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 57 M = ({q0 , q1 , q2 , q3 , q4 }, {0, 1}, δ, q0 , {q2 , q4 }) e δ(q0 , 0) = {q0 , q3 } δ(q1 , 0) = ∅ δ(q2 , 0) = {q2 } δ(q3 , 0) = {q4 } δ(q4 , 0) = {q4 } δ(q0 , 1) = {q0 , q1 } δ(q1 , 1) = {q2 } δ(q2 , 1) = {q2 } δ(q3 , 1) = ∅ δ(q4 , 1) = {q4 }
  • 58. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 58 • Teorema: Se L ´ um conjunto aceito por um AFND, e ent˜o existe um autˆmato finito determin´ a o ıstico (AFD) que aceita L. (Ou seja, o n˜o determinismo n˜o acrescenta nada – a a a n˜o ser praticidade – ao AF). a
  • 59. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 59 • Seja M = (K, Σ, δ, q0 , F ) um AFND que aceita L. Definimos o AFD M = (K , Σ, δ , q0 , F ) tal que: – Os estados de M s˜o constituidos por todos os a subconjuntos do conjunto de estados de M : K = Partes(K) e K = 2K ; – Nota¸ao: estados de M s˜o [q1 q2 q3 · · · qi ], onde c˜ a q1 , q2 , q3 , . . . , qi ∈ K; – Ex: Se K = {q0 , q1 } ent˜o K = {∅, [q0 ], [q1 ], [q0 q1 ]}; a – F ´ o conjunto de todos os estados de K contendo e um estado de F ; – q0 = [q0 ];
  • 60. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 60 – Definimos δ ([q1 q2 q3 · · · qi ], a) = [p1 p2 p3 · · · pj ] se e somente se δ({q1 , q2 , . . . , qi }, a) = {p1 , p2 , . . . , pj } = δ(q1 , a) ∪ δ(q2 , a) ∪ · · · ∪ δ(qi , a).
  • 61. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 61 • Prova: T (M ) = T (M ). Por indu¸˜o sobre o ca tamanho da palavra de entrada w. Devemos mostrar ˆ que δ ([q0 ], w) = [p1 · · · pi ] se e somente se ˆ δ(q0 , w) = {p1 , . . . , pi }. a ˆ 1. Base: |w| = 0, w = ε. Ent˜o, δ ([q0 ], ε) = [q0 ] se e ˆ somente se δ(q0 , ε) = {q0 }, que ´ verdadeiro por e defini¸ao; c˜ 2. Hip´tese: |w| = n, n ≥ 1. o ˆ Supor δ ([q0 ], w) = [p1 · · · pi ] se e somente se ˆ δ(q0 , w) = {p1 , . . . , pi };
  • 62. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 62 3. Passo: |wa| = n + 1, n ≥ 1: ˆ δ ([q0 ], wa) = [q1 · · · qj ] se e somente se ˆ δ(q0 , wa) = {q1 , . . . , qj } que equivale a dizer que ˆ δ ([p1 · · · pi ], a) = [q1 · · · qj ] se e somente se ˆ δ({p1 , . . . , pi }, a) = {q1 , . . . , qj } que ´ verdade por defini¸ao. e c˜
  • 63. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 63 Exemplo: Dado o AFND M = ({q0 , q1 }, {0, 1}, δ, q0 , {q1 }) e δ(q0 , 0) = {q0 , q1 } δ(q0 , 1) = {q1 } δ(q1 , 0) = ∅ δ(q1 , 1) = {q0 , q1 } . Construir o AFD M equivalente.
  • 64. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 64 M = (K , {0, 1}, δ , [q0 ], F ) K = {[q0 ], [q1 ], [q0 q1 ], ∅} F = {[q1 ], [q0 q1 ]} δ(q0 , 0) = {q0 , q1 } ⇒ δ ([q0 ], 0) = [q0 q1 ] δ(q0 , 1) = {q1 } ⇒ δ ([q0 ], 1) = [q1 ] δ(q1 , 0) = ∅ ⇒ δ ([q1 ], 0) = ∅ δ(q1 , 1) = {q0 , q1 } ⇒ δ ([q1 ], 1) = [q0 q1 ]
  • 65. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 65 δ({q0 , q1 }, 0) = δ(q0 , 0) ∪ δ(q1 , 0) = ⇒ δ ([q0 q1 ], 0) = [q0 q1 ] = {q0 , q1 } ∪ ∅ = {q0 , q1 } δ({q0 , q1 }, 1) = δ(q0 , 1) ∪ δ(q1 , 1) = ⇒ δ ([q0 q1 ], 1) = [q0 q1 ] = {q1 } ∪ {q0 , q1 } = {q0 , q1 }
  • 66. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 66 Tabela do AFND: δ 0 1 → q0 q0 , q 1 q1 ∗q1 ∅ q0 , q 1 Tabela do AFD equivalente: δ 0 1 → [q0 ] [q0 q1 ] [q1 ] ∗[q1 ] ∅ [q0 q1 ] ∗[q0 q1 ] [q0 q1 ] [q0 q1 ]
  • 67. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 67 • Rela¸˜o entre AF e GR ca • Teorema: Se G = (N, T, P, S) ´ uma GR (Tipo 3) e ent˜o existe um AF M = (K, T, δ, S, F ) tal que a T (M ) = L(G). • Seja M um AFND: – os estados de M s˜o as vari´veis de G, mais um a a estado adicional A, A ∈ N . Assim, K = N ∪ {A}; – estado inicial de M ´ S; e – se P tem produ¸ao S → ε ent˜o F = {S, A}, caso c˜ a contr´rio F = {A}; a
  • 68. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 68 – transi¸oes de M : c˜ 1. δ(B, a) = A para cada B → a ∈ P ; 2. δ(B, a) = C para cada B → aC ∈ P ; 3. δ(A, a) = ∅ para todo a ∈ T . • Provar que T (M ) = L(G).
  • 69. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 69 Exemplo: G = ({S, B}, {0, 1}, P, S), e P : S → 0B, B → 0B|1S|0 Construir um AF que aceite L(G): M = ({S, B, A}, {0, 1}, δ, S, {A}) δ(S, 0) = {B} ⇐ S → 0B δ(S, 1) = ∅ δ(B, 0) = {B, A} ⇐ B → 0B|0 δ(B, 1) = {S} ⇐ B → 1S
  • 70. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 70 Convertendo para um AFD: M = (K , {0, 1}, δ , [S], F ) K = {∅, [S], [A], [B], [AS], [AB], [BS], [ABS]} F = {[A], [AS], [AB], [ABS]} δ ([S], 0) = [B] δ ([B], 0) = [AB] δ ([S], 1) = ∅ δ ([B], 1) = [S] δ ([AB], 0) = δ(A, 0) ∪ δ(B, 0) = ∅ ∪ {A, B} = [AB] δ ([AB], 1) = δ(A, 1) ∪ δ(B, 1) = ∅ ∪ {S} = [S] δ (∅, 0) = δ (∅, 1) = ∅
  • 71. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 71 Eliminando os estados inacess´ ıveis: K = {[S], [B], [AB]} F = {[AB]}
  • 72. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 72 • Teorema: Se M = (K, T, δ, q0 , F ) ´ um AF ent˜o e a existe uma gram´tica do Tipo 3, G = (N, T, P, S), tal a que L(G) = T (M ). • Para obter G: – N = K; – S = q0 ; – Produ¸oes: c˜ 1. B → aC para toda a transi¸˜o δ(B, a) = C; ca 2. B → a para toda a transi¸˜o δ(B, a) = C, ca quando C ∈ F ; – Se ε ∈ T (M ) ent˜o L(G) = T (M ); a
  • 73. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 73 – Se q0 ∈ F ent˜o ε ∈ T (M ), e L(G) = T (M ) − {ε}. a Neste caso, construir uma L(G ) = L(G) ∪ {ε}; • Provar L(G) = T (M ).
  • 74. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 74 Exemplo: Contruir G = (K , {0, 1}, P , [S]), K = {[S], [B], [AB]}, a partir de M do exemplo anterior: [S] → 0[B] δ ([S], 0) = [B] [B] → 0[AB] δ ([B], 0) = [AB] [B] → 0 [AB] ∈ F [AB] → 0[AB] δ ([AB], 0) = [AB] [AB] → 0 [AB] ∈ F [B] → 1[S] δ ([B], 1) = [S] [AB] → 1[S] δ ([AB], 1) = [S]
  • 75. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 75 • Minimiza¸˜o de AF. ca Um AF M ´ m´nimo se: e ı 1. n˜o possui estados inacess´ a ıveis; 2. n˜o possui estados mortos; a 3. n˜o possui estados equivalentes. a
  • 76. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 76 • Constru¸˜o do AF m´ ca ınimo: 1. retirar de K os estados inacess´veis, ou seja, todo ı estado q ∈ K para o qual n˜o exista senten¸a w tal a c ˆ que δ(q0 , w) = q; 2. retirar de K os estados mortos, ou seja, todo estado que n˜o sendo estado final e que n˜o conduz a a a nenhum estado final durante o reconhecimento; 3. construir todas as poss´ ıveis classes de equivalˆncia e de estados;
  • 77. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 77 4. construir M = (K , Σ, δ , q0 , F ) conforme segue: – K ´ o conjunto das classes de equivalˆncia e e obtidas; – q0 ´ a classe de equivalˆncia que cont´m q0 ; e e e – F ´ o conjunto de todas as classes de e equivalˆncia que cont´m pelo menos um estado e e de F ; – δ ´ o conjunto de transi¸oes tais que e c˜ δ ([p], a) = [q] para toda a transi¸˜o δ(p1 , a) = q1 , ca onde p1 ∈ [p] e q1 ∈ [q].
  • 78. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 78 • Constru¸˜o das Classes de Equivalˆncia: ca e Um conjunto de estados q1 , q2 , . . . , qj est´ em uma a mesma classe de equivalˆncia se todas as transi¸˜es e co poss´ ıveis a partir de cada estado conduz o autˆmato o aos estados qi , qi+1 , . . . , qn , estando estes ultimos ´ todos em uma mesma classe de equivalˆncia. e
  • 79. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 79 • Algoritmo: 1. Criar um estado ∅ para representar as transi¸oes c˜ indefinidas; 2. Dividir K em duas classes de equivalˆncia iniciais, e uma contendo os estados finais e a outra todos os demais estados de K; 3. Dividir sucessivamente as classes obtidas, at´ que e nenhuma nova classe possa ser obtida.
  • 80. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 80 Exemplo: δ a b → q0 q1 q5 q1 - q2 ∗q2 q3 q2 ∗q3 q3 q3 q4 q4 q1 q5 q5 q5
  • 81. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 81 Aplicando: 1. estados inacess´ ıveis: q4 ; 2. estado morto: q5 ; δ a b → q0 q1 ∅ q1 ∅ q2 ∗q2 q3 q2 ∗q3 q3 q3 ∅ ∅ ∅
  • 82. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 82 3. classes de equivalˆncia: e {q2 , q3 } {q0 , q1 , ∅} tt tt tt tt t {q0 , ∅} {q1 } t ttt ttt tt {q0 } {∅} {q2 , q3 } {q0 } {∅} {q1 } [0] [1] [2] [3]
  • 83. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 83 4. autˆmato sem classes de equivalˆncia: o e δ a b ∗[0] [0] [0] → [1] [3] [2] [2] [2] [2] [3] [2] [0]
  • 84. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 84 5. AF m´ ınimo: δ a b ∗[0] [0] [0] → [1] [3] - [3] - [0]
  • 85. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 85 Exerc´ ıcios: 1. Minimize o seguinte AF: a + GFED q0 GFED k @ABC q1 @ABC a b b q2 e GFED @ABC ?= 89:; q3 GFED @ABC ?= 89:; e e } } eea} b } a }e b }}}} eee ~ q4 2 GFED @ABC ?= 89:; q5 / GFED @ABC b a
  • 86. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 86 2. Minimize o seguinte AF: q0 GFED @ABC a q1 e GFED @ABC } ee b }}} eea }} ee } ee }} ~ b b 2 q2 f GFED o @ABC q GFED @ABC ?= 89:; 3 l a b a }} }} } }} a }} q4 GFED @ABC ?= 89:;
  • 87. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 87 • Express˜es Regulares – s˜o esquemas para o a representar linguagens regulares; • Sintaxe: 1. Todos os s´ ımbolos do alfabeto s˜o ER; a 2. Se R1 e R2 s˜o ER, ent˜o (R1 |R2 ) ´ uma ER a a e (uni˜o); a 3. Se R1 e R2 s˜o ER, ent˜o (R1 R2 ) ´ uma ER a a e (concatena¸ao); c˜ 4. Se R1 ´ ER, ent˜o (R1 )∗ ´ uma ER (repeti¸ao). e a e c˜ + Observa¸oes: R1 = R1 (R1 )∗ e R1 = R1 |ε. c˜ ?
  • 88. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 88 • Exemplos: – (a)∗ = a∗ = {ε, a, aa, aaa, . . .}; – a+ = {a, aa, aaa, . . .}; – (a|b)∗ = {ε, a, b, aa, ab, ba, bb, aaa, . . .}; – a|b∗ = {ε, a, b, bb, bbb, . . .}; – a(a|b)∗ = {a, aa, ab, aaa, aab, aba, abb, aaaa, . . .}; – (a(a|b))∗ = {ε, aa, ab, aaaa, abaa, aaab, . . .}; – Identificadores: l(l|d)∗ = {l, ll, ld, lll, . . .}; – Inteiro com sinal: (+|−)d+ ; – Inteiro com/sem sinal: ((+|−)d+ )|d+ .
  • 89. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 89 • Bombeamento para Linguagens Regulares (Pumping Lemma) – serve para provar que uma dada linguagem ´ regular; e • Para provar que sim: AF, GR, ER; • Para provar que n˜o: bombeamento; a • Prova por redu¸˜o ao absurdo; ca • Seja M = (K, Σ, δ, q0 , F ) e K = n; • Considere uma entrada w tal que |w| ≥ n;
  • 90. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 90 • Assim, o caminho no diagrama de transi¸oes deve c˜ passar por um conjunto de estados Q ⊂ K mais de uma vez (la¸o); c q0 HIJK Q qi GFED /o /o /o / ONML /o /o /o / GFED @ABC @ABC ?= 89:;
  • 91. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 91 • Lema: Seja L uma linguagem regular. Ent˜o, existe a uma constante n tal que se z ´ uma palavra de L, e e |z| ≥ n, nos podemos dizer que z = uvw de tal forma que |uv| ≤ n, |v| ≥ 1 e, para todo i ≥ 0, uv i w est´ a em L.
  • 92. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 92 • Aplica¸˜o do bombeamento (aplicado como um ca “jogo” contra um “advers´rio”): a 1. Selecione uma linguagem L que desejamos provar que n˜o ´ regular; a e 2. O “advers´rio” escolhe um n, a constante do Lema. a Uma vez escolhido o n ele n˜o pode muda-lo; a 3. Selecione uma string z ∈ L. Sua escolha depende do n escolhido no passo anterior; 4. O “advers´rio” quebra z nas partes u,v, e w, tal a que |uv| ≤ n e |v| ≥ 1; 5. Vocˆ encontra a contradi¸ao mostrando que para e c˜ qualquer u, v, e w escolhido pelo “advers´rio”, a existe um i para o qual uv i w n˜o est´ em L. a a
  • 93. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 93 n2 • Ex: L = {a |n ≥ 1} n˜o ´ regular. a e 2 Solu¸˜o: Suponha z = an , z ∈ L e L ´ regular. Seja ca e z = uvw, onde 1 ≤ |v| ≤ n e uv i w ∈ L para todo i. Em particular, seja i = 2. Ent˜o, a n2 |uv 2 w| ≤ n2 + n, j´ que |uv 2 w| = |uvw| + |v|, a |uvw| = n2 . Logo, n2 |uv 2 w| ≤ n2 + n (n + 1)2 . Ou seja, o tamanho de uv 2 w fica entre n2 e (n + 1)2 e n˜o pode ser um quadrado perfeito. Assim, uv 2 w ∈ L a e L n˜o ´ regular. a e
  • 94. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 94 • Exerc´ ıcio: Prove por bombeamento que L = {an bn |n ≥ 0} n˜o ´ regular. a e
  • 95. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 95 Solu¸˜o: Suponha z = an bn , z ∈ L e L ´ regular. ca e Escolho uv = an , w = bn . Observe que uv i w ∈ L para i 1, j´ que, neste caso, teriamos am bn para m n. a Logo, por redu¸˜o ao absurdo, L n˜o ´ regular. ca a e
  • 96. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 96 • AF com Sa´ (Moore e Mealy) – n˜o se restringe a ıda a aceita/rejeita, produz uma string de sa´ ıda; • M´quina de Mealy – sa´ associada `s transi¸˜es; a ıda a co M = (K, Σ, δ, q0 , F, ∆) Onde: K conjunto finito de estados; Σ alfabeto finito de entrada; δ : K × Σ → K × ∆∗ fun¸ao de transi¸ao; c˜ c˜ q0 ∈ K estado inicial; F ⊂ K conjunto de estados finais; ∆ alfabeto finito de sa´ ıda;
  • 97. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 97 • δ(q, a) = (p, w), com p, q ∈ K, a ∈ Σ, e w ∈ ∆∗ , significa que o AF, estando no estado q e tendo a na fita de entrada, muda para o estado p e escreve a string w na fita de sa´ıda.
  • 98. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 98 Exemplo: Seja Σ = {x} e ∆ = {a, b}. M ´ uma e m´quina de Mealy que reconhece uma palavra a w,|w| ≥ 1, tal que w = x+ e produz uma seq¨ˆncia ue v = (ab)+ , em que |v| = 2|w|. Solu¸˜o: ca q0 @ABC GFED q1 / G?= @ABC 89:; FED l (x,ab) (x,ab) Observa¸ao: arestas s˜o rotuladas com um par (x, y), c˜ a onde x ´ o s´ e ımbolo lido e y ´ a string produzida na e sa´ ıda.
  • 99. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 99 • M´quina de Moore – sa´ associada aos estados; a ıda M = (K, Σ, δ, q0 , F, ∆, δS ) Onde: K conjunto finito de estados; Σ alfabeto finito de entrada; δ : K × Σ → K fun¸ao de transi¸ao; c˜ c˜ q0 ∈ K estado inicial; F ⊂ K conjunto de estados finais; ∆ alfabeto finito de sa´ ıda; δS : K → ∆∗ fun¸ao (total) de sa´ c˜ ıda;
  • 100. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 100 Exemplo: o mesmo anterior (xxx · · · x ⇒ ababab · · · ab). Solu¸˜o: ca x @ABC GFED q0 ,a / GFED @ABC ?= 89:; q1 ,b / ONML HIJK @ABC GFED q2 ,ab x x Observa¸ao: os v´rtices s˜o rotulados com um par c˜ e a (x, y), onde x ´ o nome do estado e y ´ a sa´ e e ıda produzida pelo estado.
  • 101. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 101 • Equivalˆncia das M´quinas de Moore e Mealy e a – Excetuando-se a string vazia, os dois modelos de m´quina s˜o equivalentes; a a – A m´quina de Moore sempre gera pelo menos a a palavra associada ao estado inicial, n˜o podendo a assim gerar a senten¸a vazia; c – Prova de equivalˆncia por simula¸ao m´tua (exceto e c˜ u a senten¸a vazia); c
  • 102. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 102 – Teorema: A m´quina de Mealy simula a m´quina a a de Moore. Prova: Suponha MO = (K, Σ, δMO , q0 , F, ∆, δS ) uma m´quina de Moore. Seja: a ME = (K ∪ {qe }, Σ, δME , qe , F, ∆) uma m´quina de Mealy, onde δME ´ definido como a e segue: 1. δME (qe , a) = (δMO (q0 , a), δS (q0 )δS (δMO (q0 , a))); 2. δME (q, a) = (δMO (q, a), δS (δMO (q, a))).
  • 103. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 103 a1 ONML HIJK q0 ,u0 / ONML HIJK q1 ,u1 V a0 qe e GFED @ABC ee ee(a1 ,u0 u1 ) (a0 ,u0 u0 ) ee ee q0 GFED @ABC q1 / GFED @ABC T (a1 ,u1 ) (a0 ,u0 )
  • 104. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 104 – Observe que o estado qe introduzido ´ referenciado e apenas na primeira transi¸ao executada. Seu c˜ objetivo ´ garantir a gera¸ao da sa´ referente ao e c˜ ıda estado inicial q0 de MO; – Provar por indu¸ao. c˜
  • 105. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 105 – Teorema: A m´quina de Moore simula a m´quina a a de Mealy;
  • 106. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 106 Exerc´ ıcios: 1. Construa um AF M que aceite: (a) todas as senten¸as em {0, 1}+ que apresentem c cada “1” seguido imediatamente de dois zeros; (b) todas as senten¸as em {a, b}∗ de modo que todo c “a” apare¸a entre dois “b”; c (c) todas as senten¸as de {a, b}+ de modo que o c ultimo s´ ´ ımbolo seja “b” e o n´mero de s´ u ımbolos “a” seja par. 2. Construa a gram´tica regular equivalente a cada um a dos autˆmatos do exerc´ anterior. o ıcio
  • 107. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 107 3. Defina a express˜o regular que representa valores a “redondos” em reais (Ex: R$1,00 ou R$200,00 ou R$1.000.000,00 ou R$3.000,00).
  • 108. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 108 4. Seja a seguinte gram´tica regular: a S → 0S|1S|0A|0C|1B A → 0A|0 B → 1B|1 C → 0A|0 Pede-se: (a) o AFND M tal que T (M ) = L(G); (b) o AFD M tal que T (M ) = T (M ); (c) M tal que T (M ) = T (M ) e M seja m´ ınimo.
  • 109. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 109 5. Seja G definida por: S → aB|aD B → bB|bC C → cC|cD D → d E → aB|a Pede-se: (a) o AF M tal que T (M ) = L(G); (b) Determine T (M ); (c) Minimize M .
  • 110. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 110 6. Seja T (M ) = {abn cm d|0 ≤ n ≤ 2 ∧ m ≥ 1}. Pede-se: (a) construa M ; (b) construa G tal que L(G) = T (M ). 7. Construa o AF e a gram´tica regular equivalentes a a cada uma das ER a seguir: (a) a(b|ca)d∗ (a|b)+ ; (b) (a(b|ca)∗ (b|c)a∗ )+ .
  • 111. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 111 8. Projete uma m´quina de Moore que recebendo um a valor em reais (ex: R$10.000,00) converta para d´lares (suponha rela¸ao 1-1 entre dolar e real – logo, o c˜ US$10,000.00). 9. O mesmo que o exerc´ anterior, usando m´quina ıcio a de Mealy.
  • 112. 3 ´ ˆ GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA 112 3 Gram´tica Livre de Contexto e a Autˆmato de Pilha o • As GLC tem grande importˆncia pois atrav´s delas a e podemos definir a maioria das estruturas de linguagens de programa¸ao; c˜ • As linguagens livres de contexto representam um conjunto mais amplo de linguagens que o das linguagens regulares; • O autˆmato de pilha (PDA) ´ um autˆmato mais o e o “poderoso” que o AF; • AF PDA (PDA simula AF e AF n˜o simula PDA); a
  • 113. 3 ´ ˆ GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA 113 • Exten¸˜o da defini¸˜o de GLC para permitir ca ca produ¸˜es na forma A → ε (chamadas ε-produ¸˜es); co co • Nova defini¸˜o: P = {A → β|A ∈ N ∧ β ∈ (N ∪ T )∗ }; ca • Uma GLC ´ ε-livre quando n˜o possui ε-produ¸oes e a c˜ ou quando possui apenas S → ε, onde S ´ o s´ e ımbolo inicial da gram´tica, e S n˜o aparece do lado direito a a de nenhuma regra de produ¸ao; c˜
  • 114. 3 ´ ˆ GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA 114 ´ • Arvores de Deriva¸˜o para GLC’s – s˜o ca a representa¸oes gr´ficas para as deriva¸oes da GLC c˜ a c˜ (formam uma estrutura hier´rquica); a
  • 115. 3 ´ ˆ GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA 115 • Seja G = (N, T, P, S) uma GLC. Uma ´rvore ´ uma a e a ´rvore de deriva¸˜o para G se: ca 1. todo nodo tem um r´tulo que ´ um s´ o e ımbolo de V ; 2. o r´tulo da raiz ´ S; o e 3. se um nodo A tem um ou mais descendentes, ent˜o a A ´ um elemento de N ; e 4. se A1 , A2 , . . . , An s˜o descendentes diretos de A, da a esquerda para a direita, ent˜o a A → A1 A2 · · · An ∈ P ; 5. se D ´ a unica sub-´rvore da raiz e tem r´tulo ε, e ´ a o ent˜o S → ε ∈ P . a
  • 116. 3 ´ ˆ GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA 116 • Exemplo: G = ({S, A}, {a, b}, P, S), P = {S → a|aAS, A → SbA|SS|ba}. Deriva¸˜o: ca S ⇒ aAS ⇒ aSbAS ⇒ aabAS ⇒ aabbaS ⇒ aabbaa. ´ Arvore de deriva¸˜o: ca Sd   d dd  dd  d a Ac Sb  cc b bb  cc bb  cc bb  S b Ab a  bb  bb  bb  b a b a
  • 117. 3 ´ ˆ GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA 117 • Profundidade da ´rvore de deriva¸˜o ´ o a ca e comprimento do maior caminho entre a raiz e um nodo terminal. No exemplo anterior ´ 3; e • Limite de uma ´rvore de deriva¸˜o ´ a seq¨ˆncia a ca e ue formada pela concatena¸˜o, da esquerda para a ca direita, das folhas da ´rvore de deriva¸˜o; a ca
  • 118. 3 ´ ˆ GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA 118 • Deriva¸ao mais ` esquerda e mais ` direita – a ´rvore c˜ a a a de deriva¸˜o ignora varia¸oes na ordem em que os ca c˜ s´ ımbolos s˜o substituidos na deriva¸˜o. Assim, a ca G = ({E}, {+, ∗, (, ), −, id}, P, E) P = {E → E + E|E ∗ E|(E)| − E|id} tomando a senten¸a −(id + id) podemos deriva-la das c duas seguintes formas: 1. E ⇒ −E ⇒ −(E) ⇒ −(E + E) ⇒ −(id + E) ⇒ −(id + id); 2. E ⇒ −E ⇒ −(E) ⇒ −(E + E) ⇒ −(E + id) ⇒ −(id + id);
  • 119. 3 ´ ˆ GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA 119 Ambas correspondem a mesma ´rvore de deriva¸˜o: a ca Ed ~ dd ~~~ dd ~~ dd ~ − Ec  cc  cc  cc  c ( Ec )  cc  cc  cc  c E + E id id
  • 120. 3 ´ ˆ GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA 120 • Deriva¸ao mais ` esquerda: s´ c˜ a ımbolo substituido ´ e sempre o n˜o-terminal mais ` esquerda na forma a a sentencial; • Deriva¸ao mais ` direita: s´ c˜ a ımbolo substituido ´ e sempre o n˜o-terminal mais ` direita na forma a a sentencial; • Nas duas deriva¸oes mostradas a pouco, a primeira ´ c˜ e mais ` esquerda e a segunda mais ` direita; a a
  • 121. 3 ´ ˆ GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA 121 • Exemplo: id + id ∗ id Deriva¸ao mais ` esquerda: E ⇒ E + E ⇒ id + E ⇒ c˜ a id + E ∗ E ⇒ id + id ∗ E ⇒ id + id ∗ id Deriva¸ao mais ` direita: E ⇒ E + E ⇒ c˜ a E + E ∗ E ⇒ E + E ∗ id ⇒ E + id ∗ id ⇒ id + id ∗ id Observa¸ao: se w ∈ L(G) e G ´ uma GLC, ent˜o w c˜ e a tem pelo menos uma ´rvore de deriva¸ao e, a c˜ correspondendo a esta ´rvore existe uma s´ deriva¸˜o a o ca mais ` esquerda e uma s´ deriva¸ao mais ` direita. a o c˜ a
  • 122. 3 ´ ˆ GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA 122 • Uma GLC ´ amb´gua se para a mesma senten¸a e ı c existe mais de uma ´rvore de deriva¸˜o; a ca Exemplo: id + id ∗ id Ea E Ñ aa Ñ aaa ÑÑ aa ÑÑ Ñ aa ÑÑ aa ÑÑ aa ÑÑ Ñ E + Ea Ea ∗ E Ñ aa Ñ aa ÑÑ aa ÑÑ aa ÑÑ aa ÑÑ aa ÑÑ ÑÑ id E ∗ E E + E id id id id id
  • 123. 3 ´ ˆ GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA 123 • Uma linguagem inerentemente amb´gua ´ aquele em ı e que todas as GLC que a geram s˜o amb´ a ıguas. Exemplo: L = {an bn cm dm |n ≥ 1 ∧ m ≥ 1} {an bm cm dn |n ≥ 1 ∧ m ≥ 1}
  • 124. 3 ´ ˆ GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA 124 Representada pela seguinte gram´tica: a G = ({S, X, Y, Z, W }, {a, b, c, d}, P, S) S → XY |Z X → ab|aXb Y → cd|cXd Z → aW d|aZd W → bc|bW c
  • 125. 3 ´ ˆ GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA 125 Exemplo de deriva¸ao: abcd c˜ SV S Ö VV ÖÖÖ VV ÖÖ VV Ö X YU ZV ÖÖ UU ÖÖ VV ÖÖ UU ÖÖ VV UU VV ÖÖÖ ÖÖÖ a b c d a WV d ÖÖ VV Ö VV ÖÖ VV ÖÖ b c
  • 126. 3 ´ ˆ GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA 126 • Transforma¸oes de GLC – tem o objetivo de c˜ simplifica¸˜o e prepara¸˜o para aplica¸˜es ca ca co posteriores. Observa¸˜o: a gram´tica transformada ca a deve ser equivalente ` original. a
  • 127. 3 ´ ˆ GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA 127 • Elimina¸˜o de s´ ca ımbolos in´teis u Um s´ımbolo ´ in´til se ele n˜o aparece na deriva¸ao e u a c˜ de nenhuma senten¸a. c est´ril n˜o gera nenhuma seq¨ˆncia de terminais e a ue pertencente a uma senten¸a; c inalcan¸´vel n˜o aparece em nenhuma forma ca a sentencial da gram´tica. a
  • 128. 3 ´ ˆ GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA 128 • Determina¸˜o do conjunto de s´ ca ımbolos f´rteis: e 1. Construir o conjunto N0 = ∅ e fazer i = 1; 2. Repetir (a) Ni = {A|A → α ∈ P ∧ α ∈ (Ni−1 ∪ T )∗ }; (b) i = i + 1; at´ que Ni = Ni−1 ; e 3. Ni ´ o conjunto de s´ e ımbolos f´rteis. e • Observa¸ao: se o s´ c˜ ımbolo inicial n˜o fizer parte dos a s´ ımbolos f´rteis, ent˜o a linguagem gerada pela e a gram´tica ´ vazia. a e
  • 129. 3 ´ ˆ GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA 129 • Exemplo: G = ({S, A, B, C, D}, {a, b, c, d}, P, S), P = {S → aA, A → a|bB, B → b|dD, C → cC|c, D → dD}. Solu¸˜o: ca 1. N0 = ∅; 2. N1 = {A, B, C}; 3. N2 = {S, A, B, C}; 4. N3 = {S, A, B, C} = N2 . Conjunto dos s´ ımbolos f´rteis: {S, A, B, C}. e Gram´tica simplificada: a G = ({S, A, B, C}, {a, b, c}, P , S), P = {S → aA, A → a|bB, B → b, C → cC|c}.
  • 130. 3 ´ ˆ GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA 130 • Determina¸˜o do conjunto de s´ ca ımbolos alcan¸aveis: c´ 1. Construir o conjunto V0 = {S} (S=s´ ımbolo inicial) e fazer i = 1; 2. Repetir (a) Vi = {X|∃A → αXβ ∈ P ∧ A ∈ Vi−1 ∧ α, β ∈ (N ∪ T )∗ ∧ X ∈ V } Vi−1 ; (b) i = i + 1; at´ que Vi = Vi−1 ; e 3. Vi ´ o conjunto de s´ e ımbolos alcan¸´veis. ca
  • 131. 3 ´ ˆ GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA 131 • Exemplo: G do exemplo anterior. G = ({S, A, B, C}, {a, b, c}, P , S), P = {S → aA, A → a|bB, B → b, C → cC|c}. Solu¸˜o: ca 1. V0 = {S}; 2. V1 = {a, A} V0 = {S, a, A}; 3. V2 = {a, b, B} V1 = {S, a, A, b, B}; 4. V3 = {b} V2 = {S, a, A, b, B} = V2 . Conjunto de s´ ımbolos alcan¸aveis: {S, A, B, a, b}. c´ Gram´tica simplificada: a G = ({S, A, B}, {a, b}, P , S), P = {S → aA, A → a|bB, B → b}.
  • 132. 3 ´ ˆ GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA 132 • Transforma¸ao de GLC qualquer em GLC ε-livre: c˜ 1. Reunir em um conjunto os n˜o-terminais que a derivam direta ou indiretamente a senten¸a vazia: c Ne = {A|A ∈ N ∧ A ⇒+ ε}; 2. Construir o conjunto de regras P como segue: (a) incluir em P todas as regras de P , com excess˜o a daquelas da forma A → ε; (b) para cada ocorrˆncia de um s´ e ımbolo Ne do lado direito de alguma regra de P , incluir em P mais uma regra, substituindo este s´ ımbolo por ε. Isto ´, para cada regra de P tipo A → αBβ, B ∈ Ne e e α, β ∈ V ∗ , incluir em P a regra A → αβ;
  • 133. 3 ´ ˆ GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA 133 3. Se S ∈ Ne , adicionar a P as regras S → S e S → ε, incluindo este novo n˜o-terminal S em a N = N ∪ {S }. Caso contr´rio, trocar os nomes de a S por S e de N por N ; 4. A nova gram´tica ser´ definida por: a a G = (N , T, P , S ).
  • 134. 3 ´ ˆ GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA 134 • Exemplos: 1. P : S → aB, B → bB|ε. Solu¸˜o: Ne = {B} e ca P : S → aB|a, B → bB|b; 2. P : S → bDCe, D → dD|ε, C → cC|ε. Solu¸ao: c˜ Ne = {D, C} e P : S → bDCe|bCe|bDe|be, D → dD|d, C → cC|c; 3. P : S → aS|ε. Solu¸˜o: Ne = {S} e ca P : S → S|ε, S → aS|a.
  • 135. 3 ´ ˆ GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA 135 • Remo¸˜o de Produ¸˜es Simples – produ¸˜es simples ca co co s˜o produ¸˜es na forma A → B, onde A, B ∈ N : a co 1. Transformar a GLC em GLC ε-livre, se necess´rio; a 2. Para todo n˜o-terminal de N , construir um a conjunto com os n˜o-terminais que ele pode derivar a em zero ou mais passos. Isto ´, ∀A ∈ N , construir e NA = {B|A ⇒∗ B}; 3. Se B → α ∈ P e n˜o ´ produ¸˜o simples, adicione a a e ca P as produ¸oes A → α para todo A tal que c˜ B ∈ NA ; 4. a GLC equivalente sem produ¸oes simples ´ c˜ e G = (N, T, P , S).
  • 136. 3 ´ ˆ GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA 136 • Exemplos: 1. P : S → bS|A, A → aA|a. Solu¸˜o: NS = {S, A}, ca NA = {A}, e P : S → bS|aA|a, A → aA|a; 2. P : S → aSb|A, A → aA|B, B → bBc|bc. Solu¸˜o: ca NS = {S, A, B}, NA = {A, B}, NB = {B}, e P : S → aSb|aA|bBc|bc, A → aA|bBc|bc, B → bBc|bc.
  • 137. 3 ´ ˆ GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA 137 • Fatora¸ao de GLC c˜ Uma GLC est´ fatorada se ela ´ determin´ a e ıstica, isto ´, n˜o possui produ¸˜es cujo lado direito inicie com o e a co mesmo conjunto de s´ımbolos ou com s´ ımbolos que gerem seq¨ˆncias que iniciem com o mesmo conjunto ue de s´ ımbolos. Por exemplo, uma gram´tica fatorada a n˜o poderia apresentar as seguintes regras: a A → aB|aC , pois ambas inicial com o terminal a. Outro exemplo de gram´tica n˜o-fatorada ´: a a e S → A|B A → ac B → ab .
  • 138. 3 ´ ˆ GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA 138 • Para fatorar: 1. as produ¸˜es que apresentam n˜o-determinismo co a direto, da forma A → αβ|αγ ser˜o substituidas por a A → αA A → β|γ sendo A um novo n˜o-terminal; a 2. o n˜o-determinismo indireto ´ retirado fazendo, nas a e regras de produ¸ao, as deriva¸˜es necess´rias para c˜ co a torna-lo um n˜o-determinismo direto, resolvido com a o passo anterior.
  • 139. 3 ´ ˆ GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA 139 Exemplos: 1. P : S → aA|aB, A → aA|a, B → b. Solu¸ao: c˜ P : S → aS , S → A|B, A → aA , A → A|ε, B → b; 2. P : S → Ab|ab|baA, A → aab|b. Solu¸ao: c˜ (n˜o-determinismo indireto) a P : S → aabb|bb|ab|baA, A → aab|b e P : S → aS |bS , S → abb|b, S → b|aA, A → aab|b.
  • 140. 3 ´ ˆ GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA 140 • Fatora¸ao ´ importante pois na implementa¸˜o de c˜ e ca um compilador, o mesmo deve seguir uma gram´tica a que n˜o apresente n˜o-determinismo pois, caso a a contr´rio, no processo de reconhecimento haveria a “retornos” (backtracking) que acabam reduzindo a eficiˆncia do algoritmo de reconhecimento. e
  • 141. 3 ´ ˆ GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA 141 • Teorema: Toda LLC sem ε pode ser definida por uma gram´tica que n˜o cont´m s´ a a e ımbolos in´teis, u ε-produ¸˜es, nem produ¸˜es simples. co co • Prova: Conseq¨ˆncia dos algoritmos apresentados. ue