Your SlideShare is downloading. ×
0
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
                      ...
3




Objetivos
 • Formalizar o conceito de linguagem;
 • Apresentar uma classifica¸ao de linguagens baseada
              ...
4




S´ mula da Disciplina
 u
1. Introdu¸ao ` Teoria de Linguagens Formais;
          c˜ a
   • Alfabetos, Senten¸as e Li...
5




2. Gram´ticas Regulares e Autˆmatos Finitos;
       a                     o
   • Defini¸ao de Gram´tica Regular (GR);...
6


3. Gram´ticas Livres de Contexto e Autˆmatos de
         a                            o
   Pilha;
   • Defini¸ao de GLC...
7




4. Reconhecedor – Algoritmo CYK;
5. Linguagens Tipo 0 e M´quinas de Turing;
                        a
6. Linguagens ...
8




Bibliografia
 • Introduction to Automata Theory, Languages, and
   Computation, Hopcroft e Ullman;
 • Linguagens Form...
9




Links

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


     1    Introdu¸˜o
                 ca
...
1          ¸˜
    INTRODUCAO                                                  11


      • Alfabeto (ou vocabul´rio) ´ um ...
1          ¸˜
    INTRODUCAO                                                   12




      • A senten¸a que n˜o cont´m s´...
1          ¸˜
    INTRODUCAO                                                 13




     Linguagem ´ qualquer conjunto de ...
1          ¸˜
    INTRODUCAO                                             14


      • Tipos de linguagens: finitas, vazias ...
1          ¸˜
    INTRODUCAO                                               15




      • Uma gram´tica serve para definir ...
1          ¸˜
    INTRODUCAO                                           16



      • Nota¸˜o Formal de Gram´tica
         ...
1          ¸˜
    INTRODUCAO                                                17



        Exemplo: gera n´meros inteiros
 ...
1          ¸˜
    INTRODUCAO                                            18




      • Conven¸oes:
              c˜
      ...
1          ¸˜
    INTRODUCAO                                               19




      • Deriva¸˜o (⇒) ´ uma opera¸ao de ...
1          ¸˜
    INTRODUCAO                                          20




      • Uma seq¨ˆncia de deriva¸oes com zero ...
1          ¸˜
    INTRODUCAO                                              21




      • Uma senten¸a de uma linguagem ´ u...
1          ¸˜
    INTRODUCAO                                                22




      • A linguagem gerada por uma gram...
1          ¸˜
    INTRODUCAO                                                 23




        Ex: G = ({S}, {0, 1}, P, S) co...
1          ¸˜
    INTRODUCAO                                               24




        Exerc´
             ıcio: Seja a...
1          ¸˜
    INTRODUCAO                                                        25



      • Tipos de Gram´ticas – se...
1          ¸˜
    INTRODUCAO                                                26



      • Gram´ticas lineares:
           ...
1          ¸˜
    INTRODUCAO                                               27




      • Defini¸˜o alternativa de gram´tic...
1          ¸˜
    INTRODUCAO                                        28




                          Regulares

          ...
1          ¸˜
    INTRODUCAO                                         29




      • Ex:
                    G = ({S, A, B}...
1          ¸˜
    INTRODUCAO                                                  30




      • Respostas:
         1. Livre ...
1          ¸˜
    INTRODUCAO                                               31


      • Linguagens classificadas segundo as...
1          ¸˜
    INTRODUCAO                                                 32


      • Vamos extender as defini¸oes das ...
1          ¸˜
    INTRODUCAO                                                  33




      • Para transformar incluiremos ...
1          ¸˜
    INTRODUCAO                              34




        Ex2: G = ({S, A}, {a}, P, S) com
        P = {S →...
1          ¸˜
    INTRODUCAO                                                 35




     Exerc´
          ıcios:
      1. ...
1          ¸˜
    INTRODUCAO                                                  36




      4. Seja G definida por:

       ...
1          ¸˜
    INTRODUCAO                                                 37




      5. Construa uma GLC G tal que L(...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                      38


     2    Gram´ticas ...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO              39




       • Defini¸˜o formal de...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                    40


                       ...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                    41



       • Diagrama de T...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                              42




     Ex:

 ...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                  43




       • Tabela de Tran...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO              44




     Ex1:
                 ...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                                    45




     ...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO   46




     Tabela:
                         ...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                     47




     Ex3: Identificad...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                       48


                a   ...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO              49


         Exemplo: M = (K, Σ, ...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO   50




                                 1
   ...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                             51



             ...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                 52




         T (M ) = {w|w ∈...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                   53




       • Autˆmato Fini...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                           54




       • Difer...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                        55




                 ...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                  56




     Ex: AFND que aceit...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                           57


     M = ({q0 , ...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                    58




       • Teorema: Se ...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                                59



       • S...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                                        60




 ...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                           61




       • Prova...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                             62


         3. Pa...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                          63




     Exemplo: D...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                      64




                   ...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                                     65




    ...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO              66



     Tabela do AFND:
       ...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                   67




       • Rela¸˜o entre...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO         68




         – transi¸oes de M :
   ...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO            69



     Exemplo: G = ({S, B}, {0,...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                    70


     Convertendo para u...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO    71




     Eliminando os estados inacess´
 ...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                       72



       • Teorema: S...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                      73




         – Se q0 ∈ ...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO            74



     Exemplo: Contruir G = (K ...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO     75




       • Minimiza¸˜o de AF.
        ...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                         76




       • Constru...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                             77




         4. ...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                             78




       • Con...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                        79




       • Algoritm...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO   80




     Exemplo:

                       ...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO      81




     Aplicando:
      1. estados in...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                                82


      3. cl...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO       83




      4. autˆmato sem classes de e...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO    84




      5. AF m´
             ınimo:
  ...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO             85




     Exerc´
          ıcios:...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                            86




      2. Mini...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                   87




       • Express˜es Re...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                           88



       • Exempl...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                89




       • Bombeamento para...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                     90




       • Assim, o ca...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                       91




       • Lema: Sej...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                      92


       • Aplica¸˜o do...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                        93




                 ...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO      94




       • Exerc´
              ıcio:...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                        95




         Solu¸˜o:...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                 96


       • AF com Sa´ (Moore...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                     97




       • δ(q, a) = (...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                      98




         Exemplo: S...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO               99



       • M´quina de Moore –...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                         100




         Exempl...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                     101




       • Equivalˆnc...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                                102




        ...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                      103




                  ...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                      104




         – Observe...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                105




         – Teorema: A m´...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                    106



     Exerc´
         ...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                  107




      3. Defina a expre...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO               108




      4. Seja a seguinte ...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO   109



      5. Seja G definida por:

        ...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                      110




      6. Seja T (M...
2       ´                     ˆ
    GRAMATICAS REGULARES E AUTOMATO FINITO                         111




      8. Projet...
3       ´                            ˆ
    GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA         112


     3    Gram´ti...
3       ´                            ˆ
    GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA              113




       • E...
3       ´                            ˆ
    GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA         114




         ´
    ...
3       ´                            ˆ
    GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA                     115



    ...
3       ´                            ˆ
    GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA                   116


       ...
3       ´                            ˆ
    GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA        117




       • Profund...
3       ´                            ˆ
    GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA              118


       • Der...
3       ´                            ˆ
    GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA                    119


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




       • Der...
3       ´                            ˆ
    GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA             121




       • Ex...
3       ´                            ˆ
    GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA                                ...
3       ´                            ˆ
    GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA        123




       • Uma lin...
3       ´                            ˆ
    GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA          124




         Repre...
3       ´                            ˆ
    GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA                                ...
3       ´                            ˆ
    GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA          126




       • Trans...
3       ´                            ˆ
    GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA             127




       • El...
3       ´                            ˆ
    GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA              128




       • D...
3       ´                            ˆ
    GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA            129



       • Exem...
3       ´                            ˆ
    GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA             130




       • De...
3       ´                            ˆ
    GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA           131


       • Exempl...
3       ´                            ˆ
    GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA                132



       • ...
3       ´                            ˆ
    GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA            133




         3. ...
3       ´                            ˆ
    GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA        134




       • Exemplo...
3       ´                            ˆ
    GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA              135


       • Rem...
3       ´                            ˆ
    GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA         136




       • Exempl...
3       ´                            ˆ
    GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA                137


       • F...
3       ´                            ˆ
    GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA               138



       • P...
3       ´                            ˆ
    GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA          139




         Exemp...
3       ´                            ˆ
    GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA         140




       • Fatora...
3       ´                            ˆ
    GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA         141




       • Teorem...
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
Upcoming SlideShare
Loading in...5
×

Linguagens Formais

3,013

Published on

Lâminas para um curso de 1 semestre de linguagens formais

Published in: Technology
1 Comment
1 Like
Statistics
Notes
No Downloads
Views
Total Views
3,013
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
166
Comments
1
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "Linguagens Formais"

  1. 1. 1 Disciplina de Linguagens Formais Prof. Carlos A. P. Campani 2 de maio de 2006
  2. 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. 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. 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. 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. 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. 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. 8 Bibliografia • Introduction to Automata Theory, Languages, and Computation, Hopcroft e Ullman; • Linguagens Formais e Autˆmatos, Paulo Blauth o Menezes.
  9. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 28. 1 ¸˜ INTRODUCAO 28 Regulares Livres de Contexto ´ Sensiveis ao Contexto Tipo 0 Tipo 3 ⊂ Tipo 2 ⊂ Tipo 1 ⊂ Tipo 0 ⊂ T ∗
  29. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 46. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 46 Tabela: δ 0 1 → ∗q0 q0 q1 *q1 q0 -
  47. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 71. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 71 Eliminando os estados inacess´ ıveis: K = {[S], [B], [AB]} F = {[AB]}
  72. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 84. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 84 5. AF m´ ınimo: δ a b ∗[0] [0] [0] → [1] [3] - [3] - [0]
  85. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 105. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 105 – Teorema: A m´quina de Moore simula a m´quina a a de Mealy;
  106. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×