SlideShare une entreprise Scribd logo
1  sur  31
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

Paradigmas de Programação - Imperativo, Orientado a Objetos e Funcional
Paradigmas de Programação - Imperativo, Orientado a Objetos e FuncionalParadigmas de Programação - Imperativo, Orientado a Objetos e Funcional
Paradigmas de Programação - Imperativo, Orientado a Objetos e FuncionalGustavo Coutinho
 
Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Mariana Camargo
 
UFCD 6024.pptx
UFCD 6024.pptxUFCD 6024.pptx
UFCD 6024.pptxteresa rua
 
RIP - Routing Information Protocol
RIP - Routing Information ProtocolRIP - Routing Information Protocol
RIP - Routing Information ProtocolJean Pimentel
 
Aula 1 aed - lógica de programação
Aula 1   aed - lógica de programaçãoAula 1   aed - lógica de programação
Aula 1 aed - lógica de programaçãoElaine Cecília Gatto
 
Metodologias de Desenvolvimento de Software
Metodologias de Desenvolvimento de SoftwareMetodologias de Desenvolvimento de Software
Metodologias de Desenvolvimento de SoftwareÁlvaro Farias Pinheiro
 
Aula 04 - POO - Estruturas de Controle e Repetição
Aula 04 - POO - Estruturas de Controle e Repetição Aula 04 - POO - Estruturas de Controle e Repetição
Aula 04 - POO - Estruturas de Controle e Repetição Aislan Rafael
 
Introdução ao desenvolvimento Web
Introdução ao desenvolvimento WebIntrodução ao desenvolvimento Web
Introdução ao desenvolvimento WebSérgio Souza Costa
 
Apresentação Open Up
Apresentação Open UpApresentação Open Up
Apresentação Open UpLuciane2309
 
Algoritmos - Lógica de Programação
Algoritmos - Lógica de ProgramaçãoAlgoritmos - Lógica de Programação
Algoritmos - Lógica de ProgramaçãoElaine Cecília Gatto
 
Ppt conhecendo o windows 7
Ppt conhecendo o windows 7Ppt conhecendo o windows 7
Ppt conhecendo o windows 7Eduardo Sena
 
Microcontroladores PIC - Introdução
Microcontroladores PIC - IntroduçãoMicrocontroladores PIC - Introdução
Microcontroladores PIC - IntroduçãoFabio Souza
 

Tendances (20)

Algoritmos - Procedimentos
Algoritmos - ProcedimentosAlgoritmos - Procedimentos
Algoritmos - Procedimentos
 
Aula3 engenharia requisitos
Aula3 engenharia requisitosAula3 engenharia requisitos
Aula3 engenharia requisitos
 
Diagramas de distribuicao
Diagramas de distribuicaoDiagramas de distribuicao
Diagramas de distribuicao
 
Paradigmas de Programação - Imperativo, Orientado a Objetos e Funcional
Paradigmas de Programação - Imperativo, Orientado a Objetos e FuncionalParadigmas de Programação - Imperativo, Orientado a Objetos e Funcional
Paradigmas de Programação - Imperativo, Orientado a Objetos e Funcional
 
Barramentos
Barramentos Barramentos
Barramentos
 
Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }
 
UFCD 6024.pptx
UFCD 6024.pptxUFCD 6024.pptx
UFCD 6024.pptx
 
RIP - Routing Information Protocol
RIP - Routing Information ProtocolRIP - Routing Information Protocol
RIP - Routing Information Protocol
 
Aula 1 aed - lógica de programação
Aula 1   aed - lógica de programaçãoAula 1   aed - lógica de programação
Aula 1 aed - lógica de programação
 
Metodologias de Desenvolvimento de Software
Metodologias de Desenvolvimento de SoftwareMetodologias de Desenvolvimento de Software
Metodologias de Desenvolvimento de Software
 
Aula 04 - POO - Estruturas de Controle e Repetição
Aula 04 - POO - Estruturas de Controle e Repetição Aula 04 - POO - Estruturas de Controle e Repetição
Aula 04 - POO - Estruturas de Controle e Repetição
 
Mini Curso de PHP
Mini Curso de PHPMini Curso de PHP
Mini Curso de PHP
 
Compiladores teoria e implementacion
Compiladores teoria e implementacionCompiladores teoria e implementacion
Compiladores teoria e implementacion
 
Introdução ao desenvolvimento Web
Introdução ao desenvolvimento WebIntrodução ao desenvolvimento Web
Introdução ao desenvolvimento Web
 
SI - Comunicação
SI - ComunicaçãoSI - Comunicação
SI - Comunicação
 
Apresentação Open Up
Apresentação Open UpApresentação Open Up
Apresentação Open Up
 
Algoritmos - Lógica de Programação
Algoritmos - Lógica de ProgramaçãoAlgoritmos - Lógica de Programação
Algoritmos - Lógica de Programação
 
Ppt conhecendo o windows 7
Ppt conhecendo o windows 7Ppt conhecendo o windows 7
Ppt conhecendo o windows 7
 
Introdução a python
Introdução a pythonIntrodução a python
Introdução a python
 
Microcontroladores PIC - Introdução
Microcontroladores PIC - IntroduçãoMicrocontroladores PIC - Introdução
Microcontroladores PIC - Introdução
 

En vedette

Se beber não case 2
Se beber não case 2Se beber não case 2
Se beber não case 2lovisi
 
Redação especial tema legalização da maconha
Redação   especial tema  legalização da maconhaRedação   especial tema  legalização da maconha
Redação especial tema legalização da maconhaJosi Motta
 
Trabalho de filosofia: Filme A onda
Trabalho de filosofia: Filme A ondaTrabalho de filosofia: Filme A onda
Trabalho de filosofia: Filme A ondaAlexandre Vilão
 
Rede deixa bolha para trás - Propaganda & Marketing
Rede deixa bolha para trás - Propaganda & MarketingRede deixa bolha para trás - Propaganda & Marketing
Rede deixa bolha para trás - Propaganda & MarketingRafael Kiso
 
Reduzir ou não a maioridade penal
Reduzir ou não a maioridade penalReduzir ou não a maioridade penal
Reduzir ou não a maioridade penalMarcela Cavalcanti
 
CóPia De Curso De Esquizofrenia MóDulo Viii
CóPia De Curso De Esquizofrenia MóDulo ViiiCóPia De Curso De Esquizofrenia MóDulo Viii
CóPia De Curso De Esquizofrenia MóDulo ViiiAntonio Luis Sanfim
 
Legalização das Drogas no Brasil
Legalização das Drogas no BrasilLegalização das Drogas no Brasil
Legalização das Drogas no BrasilLyssa Martins
 
Slideshare maioridade penal
Slideshare maioridade penalSlideshare maioridade penal
Slideshare maioridade penalRosa Oliveira
 
Transtorno Bipolar tipo I
Transtorno Bipolar tipo ITranstorno Bipolar tipo I
Transtorno Bipolar tipo Iadglm
 
Redução da maioridade penal (1)
Redução da maioridade penal (1)Redução da maioridade penal (1)
Redução da maioridade penal (1)Gislaine Ribeiro
 
ALTERAÇÕES DO HUMOR - síntese de aspectos relevantes a partir da CID-10
ALTERAÇÕES DO HUMOR - síntese de aspectos relevantes a partir da CID-10ALTERAÇÕES DO HUMOR - síntese de aspectos relevantes a partir da CID-10
ALTERAÇÕES DO HUMOR - síntese de aspectos relevantes a partir da CID-10Alexandre Simoes
 
Depressão - Ansiedade
Depressão - AnsiedadeDepressão - Ansiedade
Depressão - AnsiedadeNovo Tempo
 
Redução da maioridade penal. saiba mais!
Redução da maioridade penal. saiba mais!Redução da maioridade penal. saiba mais!
Redução da maioridade penal. saiba mais!DesabafoSocial
 
Trastorno bipolar
Trastorno bipolarTrastorno bipolar
Trastorno bipolarieslajara
 

En vedette (20)

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

Dernier

COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteVanessaCavalcante37
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfmaurocesarpaesalmeid
 
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfPROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfHELENO FAVACHO
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...azulassessoria9
 
Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?AnabelaGuerreiro7
 
CRUZADINHA - Leitura e escrita dos números
CRUZADINHA   -   Leitura e escrita dos números CRUZADINHA   -   Leitura e escrita dos números
CRUZADINHA - Leitura e escrita dos números Mary Alvarenga
 
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfHELENO FAVACHO
 
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTailsonSantos1
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesFabianeMartins35
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfprofesfrancleite
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfHELENO FAVACHO
 
Bloco de português com artigo de opinião 8º A, B 3.docx
Bloco de português com artigo de opinião 8º A, B 3.docxBloco de português com artigo de opinião 8º A, B 3.docx
Bloco de português com artigo de opinião 8º A, B 3.docxkellyneamaral
 
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdfLeloIurk1
 
Slides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxSlides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxMauricioOliveira258223
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxLuizHenriquedeAlmeid6
 
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....LuizHenriquedeAlmeid6
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Ilda Bicacro
 
Dicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelDicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelGilber Rubim Rangel
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfTutor de matemática Ícaro
 

Dernier (20)

COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
 
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfPROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?
 
CRUZADINHA - Leitura e escrita dos números
CRUZADINHA   -   Leitura e escrita dos números CRUZADINHA   -   Leitura e escrita dos números
CRUZADINHA - Leitura e escrita dos números
 
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
 
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividades
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
 
Bloco de português com artigo de opinião 8º A, B 3.docx
Bloco de português com artigo de opinião 8º A, B 3.docxBloco de português com artigo de opinião 8º A, B 3.docx
Bloco de português com artigo de opinião 8º A, B 3.docx
 
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
 
Slides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxSlides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptx
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
 
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!
 
Dicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelDicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim Rangel
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
 

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