• Nenhum resultado encontrado

Compiladores e Computabilidade

N/A
N/A
Protected

Academic year: 2022

Share "Compiladores e Computabilidade"

Copied!
7
0
0

Texto

(1)

Compiladores e Computabilidade

Prof. Leandro C. Fernandes

UNIP –Universidade Paulista, 2018

ANÁLISE SINTÁTICA (PARSING)

(2ª fase da Análise)

(2)

A análise sintática

Tokens

Analisador Léxico

Árvore Sintática

Tabela de Símbolos

Analisador Sintático

Comprovar que a seqüência de tokens cumpre as regras gramaticais, gerando sua árvore gramatical.

Tornar clara a estrutura hierárquica da evolução da sentença.

Exemplo: A / B * C em Fortran: (A/B) * C em APL: A / (B*C)

Identificar erros de Sintaxe

Exemplo: A * / B;

Recuperar erros de sintaxe;

Não retardar, de forma significativa, o processamento de programas corretos.

A análise sintática deve:

(3)

Observações/Curiosidade

60% dos programas compilados estão corretos tanto sintaticamente quanto semanticamente;

80% dos enunciados com erros apresentam apenas um erro;

13% dos enunciados com erros apresentam apenas dois erros;

90% dos erros envolvem um único token.

Especificando a estrutura sintática da Linguagem

Gramáticas regulares não podem lidar com estruturas aninhadas ou com recursões centrais

Ex:Expr... "(" Expr")" ...

Cmd "do" Cmd"while" "(" Expr")“

Solução: Gramáticas Livres de Contexto

Vantagens na utilização de gramáticas:

especificações sintáticas precisas de linguagens;

podemos usar um gerador automático de parser;

o processo de construção pode levar a identificar ambiguidades;

facilidade de ampliar/modificar a linguagem.

(4)

Tipos de Analisadores Sintáticos

Métodos Descendentes (Top Down):

Constroem a árvore sintática de cima para baixo (da raiz para as folhas), ou seja, do símbolo inicial da gramática para a sentença.

Analisadores Descendentes Recursivos

Analisadores LL(k) E

E

+ T T

* F a F T

a F

a E

E

+ T T

* F a F T

a F

a E

E

+ T

* a F T

a a E

E

+ T

* a T

a a + +

E

+ * a a a

*

...

Tipos de Analisadores Sintáticos

Métodos Ascendentes (Bottom-up):

• Constroem a árvore sintática de baixo para cima (das folhas para a raiz), ou seja, reduz os símbolo da sentença até alcançar o símbolo inicial da gramática.

Analisadores LR

Analisadores LALR EE T

T F F T

F

E T

T F F T

F E

T F F T

F E

F T

F F

(5)

Tanto para a análise ascendente, quanto para a descendente a entrada é examinada da esquerda para a direita e, usualmente, um símbolo por vez;

Trabalham com subclasses de gramáticas. Em geral, as gramáticas são LL e LR

Na prática, utilizam-se LL(1) e LR(1)

Muitos compiladores são dirigidos pela sintaxe (parsen driver)

Nele o analisador sintático é o módulo principal e realiza chamadas para o analisador léxico.

Tipos de Analisadores Sintáticos

RECUPERAÇÃO DE ERROS

(6)

Modo pânico ou Desespero:

Para imediatamente diante do primeiro erro; ou

identificado um erro, o analisador sintático descarta símbolos de entrada, até que seja encontrado um token pertencente ao subconjunto de tokens de sincronização;

tokens de sincronização: delimitadores etc.

Recuperação de Erros

Recuperação de Frases:

ao descobrir um erro, o analisador sintático pode realizar uma

correção local na entrada restante (substituir por alguma cadeia que permita a análise prosseguir)

exemplo: substituir uma vírgula inadequada por um ponto e vírgula, remover um “:” excedente;

Recuperação de Erros

(7)

Recuperação de Erros

Produções de Erro:

aumenta-se a gramática, de forma a acomodar os erros mais comuns.

Quando uma produção de erro é identificada pelo analisador, diagnósticos apropriados são apresentados;

Recuperação de Erros

Correção Global:

usa algoritmos de escolha da seqüência mínima de mudanças necessárias para se obter a correção global, com custo adequado.

exemplo: dada uma cadeia x, o parser procura árvores gramaticais que permitam transformar x em y (cadeia correta) com um mínimo de modificações.

Referências

Documentos relacionados

Note on the occurrence of the crebeater seal, Lobodon carcinophagus (Hombron & Jacquinot, 1842) (Mammalia: Pinnipedia), in Rio de Janeiro State, Brazil.. On May 12, 2003,

◦ Os filtros FIR implementados através de estruturas não recursivas têm menor propagação de erros. ◦ Ruído de quantificação inerente a

Os candidatos reclassificados deverão cumprir os mesmos procedimentos estabelecidos nos subitens 5.1.1, 5.1.1.1, e 5.1.2 deste Edital, no período de 15 e 16 de junho de 2021,

Desta maneira, observando a figura 2A e 2C para os genótipos 6 e 8, nota-se que os valores de captura da energia luminosa (TRo/RC) são maiores que o de absorção (ABS/RC) e

Mediante o impacto do paciente com o ambiente do centro cirúrgico, a equipe de enfermagem deve estar voltada para o aspecto humano do atendimento, centrando suas

Verificada a efetividade da proposta, a Comissão de Licitações declarou vencedor o licitante Francisco Souza Lima Helm, sendo o total do item 14 licitado o valor de

A meta prevista para este indicador era garantir a realização de exames complementares em dia a 100% de hipertensos e diabéticos do programa, por tanto não foi atingida,

ABSTRACT: The toxicological effects of crude ethanolic extracts (CEE) of the seed and bark of Persea americana have been analyzed on larvae and pupae of