Modo Pânico
         Uma técnica de recuperação de erros sintáticos em
                           compiladores




    Demontiê Junior                             Izabela Melo
demontie@dsc.ufcg.edu.br                  izabela@dsc.ufcg.edu.br
Agenda

• O que é um Compilador?
• Fases de um Compilador
• Análise Sintática
  o Análise Sintática Preditiva
• Recuperação de Erros
• Modo Pânico
  o Exemplo prático
• Considerações finais

         Ciclo de Seminários Técnicos - Modo Pânico
               Demontiê Junior e Izabela Melo
                                                      2
INTRODUÇÃO
    MODO PÂNICO
      EXEMPLO
CONSIDERAÇÕES FINAIS
O que é um compilador?

  Fonte                   Compilador                         Destino
_________                                                   _________
_________                                                   _________
_________                                                   _________
_________                                                   _________
_____                                                       _____




               Ciclo de Seminários Técnicos - Modo Pânico
                     Demontiê Junior e Izabela Melo
                                                                        4
Outros processadores de linguagens
• Interpretadores

                            Fonte
                            _______
                            _______
                            ______



  Entrada                                                   RESULTADOS


                     Interpretador




               Ciclo de Seminários Técnicos - Modo Pânico
                     Demontiê Junior e Izabela Melo
                                                                         5
Outros processadores de linguagens
• Compiladores JITs
           Aplicação Java
                                                      Bytecode


           Máquina Virtual

                                          Compilador
                                          JIT
                                                  Código de
                                                  Máquina


                Ciclo de Seminários Técnicos - Modo Pânico
                      Demontiê Junior e Izabela Melo
                                                                 6
Fases de um compilador
                             Fluxo de caracteres
                    Analisador Léxico
                                 Fluxo de tokens



Ex.:



       Meu nome é




             Ciclo de Seminários Técnicos - Modo Pânico
                   Demontiê Junior e Izabela Melo
                                                          7
Fases de um compilador
                              Fluxo de caracteres
                     Analisador Léxico
                               Fluxo de tokens
                    Analisador Sintático
                                  Árvore Sintática


Ex.:



       Hoje, não pagarei-te o almoço!


              Ciclo de Seminários Técnicos - Modo Pânico
                    Demontiê Junior e Izabela Melo
                                                           8
Fases de um compilador
                            Fluxo de caracteres
                   Analisador Léxico
                             Fluxo de tokens
                  Analisador Sintático
                            Árvore Sintática
                Analisador Semântico
                                Árvore Sintática


Ex.:



                          cachorro
Você quer ir para casa ou cachorro?

            Ciclo de Seminários Técnicos - Modo Pânico
                  Demontiê Junior e Izabela Melo
                                                         9
Fases de um compilador
                                         Fluxo de caracteres
                                Analisador Léxico
                                          Fluxo de tokens
                               Analisador Sintático
                                         Árvore Sintática
                             Analisador Semântico
                                        Árvore Sintática
      Tabela                  Gerador de Código
        de                      Intermediário
     Símbolos                           Representação Intermediária
                             Otimizador de Código
                           Independente de Máquina
                                        Representação Intermediária
                               Gerador de Código
                                        Código de máquina destino
Notas de aula do Prof.
  Franklin Ramalho            Otimizador de Código
                                                            Código de máquina
  (UFCG/CEEI/DSC)            Dependente de Máquina
                                                                  destino
                         Ciclo de Seminários Técnicos - Modo Pânico
                               Demontiê Junior e Izabela Melo
                                                                                10
Análise Sintática
• Analisa a estrutura gramatical dos tokens no
  programa fonte
• Produz uma estrutura intermediária
   – Árvore Sintática




                                                                 Notas de aula do Prof.
                                                                   Franklin Ramalho
                                                                   (UFCG/CEEI/DSC)


                    Ciclo de Seminários Técnicos - Modo Pânico
                          Demontiê Junior e Izabela Melo
                                                                                          11
Análise Sintática
• Gramáticas Livre de Contexto (BNF)
   – Elementos terminais
   – Elementos não terminais
• Ex.:
         E   E + E
         E   E - E
         E   (E)
         E   T
         T   0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

             ((9 – 3) + 2 + 5) é uma derivação válida?


                     Ciclo de Seminários Técnicos - Modo Pânico
                           Demontiê Junior e Izabela Melo
                                                                  12
Análise Sintática
• Tipos de algoritmos
  – Análise Sintática Descendente
     • Recursiva
     • Preditiva (LL)
  – Análise Sintática Ascendente (Shift-Reduce)
     • SLR
     • LR Canônico               Mais complexos
     • LALR



                     Ciclo de Seminários Técnicos - Modo Pânico
                           Demontiê Junior e Izabela Melo
                                                                  13
Análise Sintática Preditiva
• Utiliza as funções FIRST e FOLLOW para determinar
  de forma não ambígua a regra de produção a ser
  analisada
• FIRST(α) é o conjunto de terminais que podem iniciar
  as cadeias derivadas de α
• FOLLOW(A) é o conjunto de terminais que podem
  aparecer à direita de A numa forma sentencial




                  Ciclo de Seminários Técnicos - Modo Pânico
                        Demontiê Junior e Izabela Melo
                                                               14
Análise Sintática Preditiva
• A partir das funções FIRST e FOLLOW, é construída
  uma tabela
   – As linhas representam os não terminais
   – As colunas representam os terminais
   – Cada célula é preenchida com a regra de produção que
     deve ser analisada para o não terminal A e o terminal a
   – Se não houver uma regra de produção, a célula indica um
     erro




                    Ciclo de Seminários Técnicos - Modo Pânico
                          Demontiê Junior e Izabela Melo
                                                                 15
Análise Sintática Preditiva




                                                    Notas de aula do Prof.
                                                      Franklin Ramalho
                                                      (UFCG/CEEI/DSC)




       Ciclo de Seminários Técnicos - Modo Pânico
             Demontiê Junior e Izabela Melo
                                                                             16
Recuperação de Erros Sintáticos
• Um bom compilador deve informar todos os erros à
  medida em que aparecem
• O compilador precisa voltar a um estado do qual ele
  possa prosseguir
• Ex.:
                 int a = 0;
                 while (x > 0){
                     a = a x;
                     x--;
                 }

                  Ciclo de Seminários Técnicos - Modo Pânico
                        Demontiê Junior e Izabela Melo
                                                               17
Recuperação de Erros Sintáticos
• Existem várias estratégias
  – Recuperação em Nível de Frase
  – Produções de Erro
  – Correção Global
  – e...




                Ciclo de Seminários Técnicos - Modo Pânico
                      Demontiê Junior e Izabela Melo
                                                             18
INTRODUÇÃO
    MODO PÂNICO
      EXEMPLO
CONSIDERAÇÕES FINAIS
Ideia Central
• Conhecido também por “Modalidade do
  Desespero”
• Define um conjunto de tokens de sincronização
• Ao encontrar um erro, descarta os símbolos da
  entrada até encontrar um token de sincronização




                Ciclo de Seminários Técnicos - Modo Pânico
                      Demontiê Junior e Izabela Melo
                                                             20
Definindo os Tokens de Sincronização
• Cada não terminal possui um conjunto desses
  tokens
• Um bom conjunto pode definir a qualidade do
  algoritmo de recuperação de erros
• Heurística: podemos incluir todos os tokens em
  FOLLOW(A) no conjunto de tokens de
  sincronização do não terminal A



                Ciclo de Seminários Técnicos - Modo Pânico
                      Demontiê Junior e Izabela Melo
                                                             21
Abordagem
• Ao encontrar um token inesperado
  – Se for um token de erro, o analisador sintático
    ignora o símbolo da entrada
  – Se for um token de sincronização, o analisador
    desempilha o não terminal no topo da pilha
  – Se o terminal no topo da pilha não casar com a
    entrada, ele é desempilhado



                 Ciclo de Seminários Técnicos - Modo Pânico
                       Demontiê Junior e Izabela Melo
                                                              22
INTRODUÇÃO
    MODO PÂNICO
      EXEMPLO
CONSIDERAÇÕES FINAIS
Gramática

E         T E | є
T         id A
A         = F;
F         id | num


    Ciclo de Seminários Técnicos - Modo Pânico
          Demontiê Junior e Izabela Melo
                                                 24
Realizando Análise Preditiva
• Cálculo das funções FIRST e FOLLOW
    FIRST(id) = {id}                FIRST(=) = {=}
    FIRST(;) = {;}                  FIRST(num) = {num}

    FIRST(E) = {id, є}             FIRST(T) = {id}
    FIRST(A) = {=}                 FIRST(F) = {id, num}

    FOLLOW(E) = {$}     FOLLOW(T) = {id, $}
    FOLLOW(A) = {id, $}    FOLLOW(F) = {;}


                Ciclo de Seminários Técnicos - Modo Pânico
                      Demontiê Junior e Izabela Melo
                                                             25
Realizando Análise Preditiva
• Construindo a tabela para o analisador

               id               ;                  =                num        $
    E      E    TE                                                         E       Є
    T      T    id A                                                       sinc
    A                                         A     = F;                   sinc
    F      F    id            sinc                              F    num




                       Ciclo de Seminários Técnicos - Modo Pânico
                             Demontiê Junior e Izabela Melo
                                                                                       26
Realizando Análise Preditiva
• Ex.:     a=;
           b = 3;
                    Pilha                  Entrada                            Ação
         $E                       a = ; b = 3;                    E      TE
         $ET                      a = ; b = 3;                    T      id A
         $ E A id                 a = ; b = 3;                    Desempilha id
         $EA                       = ; b = 3;                      A     = F;
         $E;F=                    = ; b = 3;                      Desempilha =
         $E;F                     ; b = 3;                        Desempilha F
         $E;                      ; b = 3;                        Desempilha ;
         $E                       b = 3;                           E     TE
                                             ...
                            Ciclo de Seminários Técnicos - Modo Pânico
                                  Demontiê Junior e Izabela Melo
                                                                                     27
INTRODUÇÃO
    MODO PÂNICO
      EXEMPLO
CONSIDERAÇÕES FINAIS
Considerações Finais
• Vantagens
  – Simplicidade
  – Garantia de não entrar num laço infinito
• Desvantagens
  – Não captura erros múltiplos num mesmo
    enunciado




                 Ciclo de Seminários Técnicos - Modo Pânico
                       Demontiê Junior e Izabela Melo
                                                              29
Referências
AHO, A.V.; SETHI, R.; ULLMAN, J.D. Compiladores:
Princípios, Técnicas e Ferramentas. 2ª edição. Ed. LTC,
2006.



Notas de aula do Prof. Franklin Ramalho (UFCG/CEEI/DSC)
       http://www.dsc.ufcg.edu.br/~franklin/pp/




http://www.ybadoo.com.br/ead/cmp/04/CMP_slides.pdf.
            Útimo acesso em 11/06/2011.


    Ciclo de Seminários Técnicos - Modo Pânico
          Demontiê Junior e Izabela Melo
                                                          30
Modo Pânico
        Uma técnica de recuperação de erros sintáticos em
                          compiladores




    Demontiê Junior                            Izabela Melo
demontie@dsc.ufcg.edu.br                 izabela@dsc.ufcg.edu.br

Mais conteúdo relacionado

PPT
Material de Apoio de Algoritmo e Lógica de Programação
PDF
Diagramas de componentes
PPTX
Sistemas Operacionais e Mercado de Trabalho
PPTX
Algoritmos e Estrutura de Dados - Aula 05
PPTX
Lógica de Programação - Algoritmos
PPTX
Algoritmo e lógica de programação - Aula 1
PDF
Aula 5 - Estruturas de seleção simples e composta - parte 1
PDF
Aula 6 - Estruturas de seleção encadeada - parte 1
Material de Apoio de Algoritmo e Lógica de Programação
Diagramas de componentes
Sistemas Operacionais e Mercado de Trabalho
Algoritmos e Estrutura de Dados - Aula 05
Lógica de Programação - Algoritmos
Algoritmo e lógica de programação - Aula 1
Aula 5 - Estruturas de seleção simples e composta - parte 1
Aula 6 - Estruturas de seleção encadeada - parte 1

Mais procurados (20)

DOCX
Teste diagnostico tic 9 e
PDF
Lab de informatica cuidados importantes
PDF
Algoritmos e lp parte3-pseudocódigo
PDF
Sistemas operacionais e aplicativos
PPTX
Estrutura de Dados - Aula 01
PPT
Algoritmos
PDF
Aula 6 - Qualidade de Software
PDF
Arquitetura de Software
PDF
Aula UML - Unified Modeling Language
PPTX
Hardware e Software
PPTX
Logica de Programacao
PDF
Introdução a estruturas de dados em python
PDF
Aula 04 estruturas de repetição
PDF
Algoritmos e lógica de programação com Python
PDF
Practicas prolog
PDF
Ferramentas open source para auxiliar os testes de software
PDF
Análise de Algoritmos
PDF
Qualidade de Software: Teste de software
PDF
UML Klassendiagramme - Einführung
PDF
POO - 08 - Prática de Encapsulamento
Teste diagnostico tic 9 e
Lab de informatica cuidados importantes
Algoritmos e lp parte3-pseudocódigo
Sistemas operacionais e aplicativos
Estrutura de Dados - Aula 01
Algoritmos
Aula 6 - Qualidade de Software
Arquitetura de Software
Aula UML - Unified Modeling Language
Hardware e Software
Logica de Programacao
Introdução a estruturas de dados em python
Aula 04 estruturas de repetição
Algoritmos e lógica de programação com Python
Practicas prolog
Ferramentas open source para auxiliar os testes de software
Análise de Algoritmos
Qualidade de Software: Teste de software
UML Klassendiagramme - Einführung
POO - 08 - Prática de Encapsulamento
Anúncio

Destaque (20)

DOCX
Compilador
PPTX
Perturbação Bipolar
PPTX
Se beber não case 2
PDF
Liderança o significado 07 mai2012
PPT
Redação especial tema legalização da maconha
PDF
Trabalho de filosofia: Filme A onda
PDF
Rede deixa bolha para trás - Propaganda & Marketing
PPTX
Reduzir ou não a maioridade penal
PPT
CóPia De Curso De Esquizofrenia MóDulo Viii
PPTX
Legalização das Drogas no Brasil
PPTX
Slideshare maioridade penal
PPTX
Sertanejo
PPT
Transtorno Bipolar tipo I
PPTX
Redução da maioridade penal (1)
PPT
O sertanejo
PPTX
ALTERAÇÕES DO HUMOR - síntese de aspectos relevantes a partir da CID-10
PPT
Depressão - Ansiedade
PPT
Tratamento do transtorno do pânico
PPTX
Redução da maioridade penal. saiba mais!
PPT
Trastorno bipolar
Compilador
Perturbação Bipolar
Se beber não case 2
Liderança o significado 07 mai2012
Redação especial tema legalização da maconha
Trabalho de filosofia: Filme A onda
Rede deixa bolha para trás - Propaganda & Marketing
Reduzir ou não a maioridade penal
CóPia De Curso De Esquizofrenia MóDulo Viii
Legalização das Drogas no Brasil
Slideshare maioridade penal
Sertanejo
Transtorno Bipolar tipo I
Redução da maioridade penal (1)
O sertanejo
ALTERAÇÕES DO HUMOR - síntese de aspectos relevantes a partir da CID-10
Depressão - Ansiedade
Tratamento do transtorno do pânico
Redução da maioridade penal. saiba mais!
Trastorno bipolar
Anúncio

Último (20)

PDF
E-BOOK-Inovacao-em-Ciencia-e-Tecnologia-de-Alimentos.pdf
PDF
HORÁRIO GERAL SIGAA 2025_PRÉVIA_SIGAA-1.pdf
PPT
16 - Treinamento Introdutório de SSO - Saúde - Primeiros Socorros.ppt
PPT
Elementos constituintes do esquema argumentativo (tese, argumento, tema, pont...
PPT
AS VANGUARDAS EUROPEIAS NA LITERATURA E N
PPT
YY2015MM3DD6HH12MM42SS3-Organiza__o do Estado ILP.ppt
PDF
DECISÃO (2).pdf Derrota histórica do Sintero expõe racha interno e fragilidad...
PPTX
Primeiros Socorros. Aula 1 VEROUVIRSENTIR.pptx
PDF
Atividades sobre o livro Letras de Carvão
PDF
cadernodoprofessor20142017vol2baixalceducfisicaef6s7a-170409213016.pdf manual...
PPSX
1. A Cultura da Ágora - HistóriaCArtes.ppsx
PPTX
5. A cultura do mundo virtual - globalidade.pptx
PDF
Historia-da-Psicologia-Rumos-e-percursos.pdf
PDF
01-slide-especialidade-mensageira-de-deus.pdf
PDF
EXPRESSÕES IDIOMÁTICAS - LÍNGUA PORTUGUESA
PPTX
AULA METodologia MODIFIC PART 1 MSC.pptx
PPTX
Slides Lição 8, CPAD, Uma Igreja que Enfrenta os seus Problemas, 3Tr25.pptx
PDF
Reino Monera - Biologiaensinomediofun.pdf
PDF
ENTREVISTA-PROCESSO-SELETIVO-idc8j5.pdf 1
PPTX
AULA 01 - INTRODUÇÃO AO ATENDIMENTO HUMANIZADO.pptx
E-BOOK-Inovacao-em-Ciencia-e-Tecnologia-de-Alimentos.pdf
HORÁRIO GERAL SIGAA 2025_PRÉVIA_SIGAA-1.pdf
16 - Treinamento Introdutório de SSO - Saúde - Primeiros Socorros.ppt
Elementos constituintes do esquema argumentativo (tese, argumento, tema, pont...
AS VANGUARDAS EUROPEIAS NA LITERATURA E N
YY2015MM3DD6HH12MM42SS3-Organiza__o do Estado ILP.ppt
DECISÃO (2).pdf Derrota histórica do Sintero expõe racha interno e fragilidad...
Primeiros Socorros. Aula 1 VEROUVIRSENTIR.pptx
Atividades sobre o livro Letras de Carvão
cadernodoprofessor20142017vol2baixalceducfisicaef6s7a-170409213016.pdf manual...
1. A Cultura da Ágora - HistóriaCArtes.ppsx
5. A cultura do mundo virtual - globalidade.pptx
Historia-da-Psicologia-Rumos-e-percursos.pdf
01-slide-especialidade-mensageira-de-deus.pdf
EXPRESSÕES IDIOMÁTICAS - LÍNGUA PORTUGUESA
AULA METodologia MODIFIC PART 1 MSC.pptx
Slides Lição 8, CPAD, Uma Igreja que Enfrenta os seus Problemas, 3Tr25.pptx
Reino Monera - Biologiaensinomediofun.pdf
ENTREVISTA-PROCESSO-SELETIVO-idc8j5.pdf 1
AULA 01 - INTRODUÇÃO AO ATENDIMENTO HUMANIZADO.pptx

Modo Pânico

  • 1. Modo Pânico Uma técnica de recuperação de erros sintáticos em compiladores Demontiê Junior Izabela Melo demontie@dsc.ufcg.edu.br izabela@dsc.ufcg.edu.br
  • 2. Agenda • O que é um Compilador? • Fases de um Compilador • Análise Sintática o Análise Sintática Preditiva • Recuperação de Erros • Modo Pânico o Exemplo prático • Considerações finais Ciclo de Seminários Técnicos - Modo Pânico Demontiê Junior e Izabela Melo 2
  • 3. INTRODUÇÃO MODO PÂNICO EXEMPLO CONSIDERAÇÕES FINAIS
  • 4. O que é um compilador? Fonte Compilador Destino _________ _________ _________ _________ _________ _________ _________ _________ _____ _____ Ciclo de Seminários Técnicos - Modo Pânico Demontiê Junior e Izabela Melo 4
  • 5. Outros processadores de linguagens • Interpretadores Fonte _______ _______ ______ Entrada RESULTADOS Interpretador Ciclo de Seminários Técnicos - Modo Pânico Demontiê Junior e Izabela Melo 5
  • 6. Outros processadores de linguagens • Compiladores JITs Aplicação Java Bytecode Máquina Virtual Compilador JIT Código de Máquina Ciclo de Seminários Técnicos - Modo Pânico Demontiê Junior e Izabela Melo 6
  • 7. Fases de um compilador Fluxo de caracteres Analisador Léxico Fluxo de tokens Ex.: Meu nome é Ciclo de Seminários Técnicos - Modo Pânico Demontiê Junior e Izabela Melo 7
  • 8. Fases de um compilador Fluxo de caracteres Analisador Léxico Fluxo de tokens Analisador Sintático Árvore Sintática Ex.: Hoje, não pagarei-te o almoço! Ciclo de Seminários Técnicos - Modo Pânico Demontiê Junior e Izabela Melo 8
  • 9. Fases de um compilador Fluxo de caracteres Analisador Léxico Fluxo de tokens Analisador Sintático Árvore Sintática Analisador Semântico Árvore Sintática Ex.: cachorro Você quer ir para casa ou cachorro? Ciclo de Seminários Técnicos - Modo Pânico Demontiê Junior e Izabela Melo 9
  • 10. Fases de um compilador Fluxo de caracteres Analisador Léxico Fluxo de tokens Analisador Sintático Árvore Sintática Analisador Semântico Árvore Sintática Tabela Gerador de Código de Intermediário Símbolos Representação Intermediária Otimizador de Código Independente de Máquina Representação Intermediária Gerador de Código Código de máquina destino Notas de aula do Prof. Franklin Ramalho Otimizador de Código Código de máquina (UFCG/CEEI/DSC) Dependente de Máquina destino Ciclo de Seminários Técnicos - Modo Pânico Demontiê Junior e Izabela Melo 10
  • 11. Análise Sintática • Analisa a estrutura gramatical dos tokens no programa fonte • Produz uma estrutura intermediária – Árvore Sintática Notas de aula do Prof. Franklin Ramalho (UFCG/CEEI/DSC) Ciclo de Seminários Técnicos - Modo Pânico Demontiê Junior e Izabela Melo 11
  • 12. Análise Sintática • Gramáticas Livre de Contexto (BNF) – Elementos terminais – Elementos não terminais • Ex.: E E + E E E - E E (E) E T T 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 ((9 – 3) + 2 + 5) é uma derivação válida? Ciclo de Seminários Técnicos - Modo Pânico Demontiê Junior e Izabela Melo 12
  • 13. Análise Sintática • Tipos de algoritmos – Análise Sintática Descendente • Recursiva • Preditiva (LL) – Análise Sintática Ascendente (Shift-Reduce) • SLR • LR Canônico Mais complexos • LALR Ciclo de Seminários Técnicos - Modo Pânico Demontiê Junior e Izabela Melo 13
  • 14. Análise Sintática Preditiva • Utiliza as funções FIRST e FOLLOW para determinar de forma não ambígua a regra de produção a ser analisada • FIRST(α) é o conjunto de terminais que podem iniciar as cadeias derivadas de α • FOLLOW(A) é o conjunto de terminais que podem aparecer à direita de A numa forma sentencial Ciclo de Seminários Técnicos - Modo Pânico Demontiê Junior e Izabela Melo 14
  • 15. Análise Sintática Preditiva • A partir das funções FIRST e FOLLOW, é construída uma tabela – As linhas representam os não terminais – As colunas representam os terminais – Cada célula é preenchida com a regra de produção que deve ser analisada para o não terminal A e o terminal a – Se não houver uma regra de produção, a célula indica um erro Ciclo de Seminários Técnicos - Modo Pânico Demontiê Junior e Izabela Melo 15
  • 16. Análise Sintática Preditiva Notas de aula do Prof. Franklin Ramalho (UFCG/CEEI/DSC) Ciclo de Seminários Técnicos - Modo Pânico Demontiê Junior e Izabela Melo 16
  • 17. Recuperação de Erros Sintáticos • Um bom compilador deve informar todos os erros à medida em que aparecem • O compilador precisa voltar a um estado do qual ele possa prosseguir • Ex.: int a = 0; while (x > 0){ a = a x; x--; } Ciclo de Seminários Técnicos - Modo Pânico Demontiê Junior e Izabela Melo 17
  • 18. Recuperação de Erros Sintáticos • Existem várias estratégias – Recuperação em Nível de Frase – Produções de Erro – Correção Global – e... Ciclo de Seminários Técnicos - Modo Pânico Demontiê Junior e Izabela Melo 18
  • 19. INTRODUÇÃO MODO PÂNICO EXEMPLO CONSIDERAÇÕES FINAIS
  • 20. Ideia Central • Conhecido também por “Modalidade do Desespero” • Define um conjunto de tokens de sincronização • Ao encontrar um erro, descarta os símbolos da entrada até encontrar um token de sincronização Ciclo de Seminários Técnicos - Modo Pânico Demontiê Junior e Izabela Melo 20
  • 21. Definindo os Tokens de Sincronização • Cada não terminal possui um conjunto desses tokens • Um bom conjunto pode definir a qualidade do algoritmo de recuperação de erros • Heurística: podemos incluir todos os tokens em FOLLOW(A) no conjunto de tokens de sincronização do não terminal A Ciclo de Seminários Técnicos - Modo Pânico Demontiê Junior e Izabela Melo 21
  • 22. Abordagem • Ao encontrar um token inesperado – Se for um token de erro, o analisador sintático ignora o símbolo da entrada – Se for um token de sincronização, o analisador desempilha o não terminal no topo da pilha – Se o terminal no topo da pilha não casar com a entrada, ele é desempilhado Ciclo de Seminários Técnicos - Modo Pânico Demontiê Junior e Izabela Melo 22
  • 23. INTRODUÇÃO MODO PÂNICO EXEMPLO CONSIDERAÇÕES FINAIS
  • 24. Gramática E T E | є T id A A = F; F id | num Ciclo de Seminários Técnicos - Modo Pânico Demontiê Junior e Izabela Melo 24
  • 25. Realizando Análise Preditiva • Cálculo das funções FIRST e FOLLOW FIRST(id) = {id} FIRST(=) = {=} FIRST(;) = {;} FIRST(num) = {num} FIRST(E) = {id, є} FIRST(T) = {id} FIRST(A) = {=} FIRST(F) = {id, num} FOLLOW(E) = {$} FOLLOW(T) = {id, $} FOLLOW(A) = {id, $} FOLLOW(F) = {;} Ciclo de Seminários Técnicos - Modo Pânico Demontiê Junior e Izabela Melo 25
  • 26. Realizando Análise Preditiva • Construindo a tabela para o analisador id ; = num $ E E TE E Є T T id A sinc A A = F; sinc F F id sinc F num Ciclo de Seminários Técnicos - Modo Pânico Demontiê Junior e Izabela Melo 26
  • 27. Realizando Análise Preditiva • Ex.: a=; b = 3; Pilha Entrada Ação $E a = ; b = 3; E TE $ET a = ; b = 3; T id A $ E A id a = ; b = 3; Desempilha id $EA = ; b = 3; A = F; $E;F= = ; b = 3; Desempilha = $E;F ; b = 3; Desempilha F $E; ; b = 3; Desempilha ; $E b = 3; E TE ... Ciclo de Seminários Técnicos - Modo Pânico Demontiê Junior e Izabela Melo 27
  • 28. INTRODUÇÃO MODO PÂNICO EXEMPLO CONSIDERAÇÕES FINAIS
  • 29. Considerações Finais • Vantagens – Simplicidade – Garantia de não entrar num laço infinito • Desvantagens – Não captura erros múltiplos num mesmo enunciado Ciclo de Seminários Técnicos - Modo Pânico Demontiê Junior e Izabela Melo 29
  • 30. Referências AHO, A.V.; SETHI, R.; ULLMAN, J.D. Compiladores: Princípios, Técnicas e Ferramentas. 2ª edição. Ed. LTC, 2006. Notas de aula do Prof. Franklin Ramalho (UFCG/CEEI/DSC) http://www.dsc.ufcg.edu.br/~franklin/pp/ http://www.ybadoo.com.br/ead/cmp/04/CMP_slides.pdf. Útimo acesso em 11/06/2011. Ciclo de Seminários Técnicos - Modo Pânico Demontiê Junior e Izabela Melo 30
  • 31. Modo Pânico Uma técnica de recuperação de erros sintáticos em compiladores Demontiê Junior Izabela Melo demontie@dsc.ufcg.edu.br izabela@dsc.ufcg.edu.br