Análise Sintática: Descendente e Ascendente

Classificado em Tecnologia

Escrito em em português com um tamanho de 2,39 KB.

Aula 6

Análise Sintática Descendente e Ascendente

Os métodos de análise sintática podem ser classificados segundo a maneira pela qual a árvore de derivação da cadeia analisada x é construída.

  • Nos métodos descendentes, a árvore de derivação correspondente a x é construída de cima para baixo, ou seja, da raiz (o símbolo inicial S) para as folhas, onde se encontra x.
  • Nos métodos ascendentes, a árvore de derivação correspondente a x é construída de baixo para cima, ou seja, das folhas, onde se encontra x, para a raiz, onde se encontra o símbolo inicial S.

Métodos descendentes e ascendentes constroem a árvore da esquerda para a direita. A razão para isto é que a escolha das regras deve se basear na cadeia a ser gerada, que é lida da esquerda para a direita.

Estruturas de árvore de derivação raramente são construídas. A única estrutura de dados necessária para o processo de análise é uma pilha que guarda informações sobre os nós da árvore de derivação relevantes em cada fase do processo. No caso da análise descendente, os relevantes são aqueles ainda não expandidos.

No caso da análise ascendente, são as raízes das árvores que ainda não foram reunidas em árvores maiores.

Aula 7

Implementação do Analisador Semântico

Já foi visto anteriormente que a definição da sintaxe de uma linguagem de programação utiliza, geralmente, uma gramática livre de contexto (GLC), mas nem todas as LPs podem ser descritas por GLCs, pois estas não chegam à compatibilidade de tipos nem regras de escopo de identificadores, isto é, onde eles podem ser usados.

Exemplo: A = B + C

Pode não ser aceito em algumas das variáveis não foi declarada ou se B ou C são booleanos. Desta forma, o analisador semântico deve fazer uma verificação do uso adequado de elementos do código como:

  • Análise contextual: declarações prévias de variáveis, procedimentos, etc.
  • Checagem de tipo: se os tipos estão sendo utilizados de forma correta nos comandos. Estas conferências vão além do domínio da sintaxe (GLC) e envolvem sensitividade ao contexto.

Componentes Semânticos

  1. Semântica Estática
  2. Semântica de tempo de execução

Semântica Estática

Entradas relacionadas: